我必须在Shell和PowerShell中制作一个脚本,以尽可能缩短ipv6地址。

喜欢:

Input: 2001:0db8:03cd:0000:0000:ef45:0006:0123
Output: 2001:db8:3cd:::ef45:6:123

如果使用了-help参数,脚本应该给出自身的描述,但是我不知道如何在PowerShell中执行此操作。

这是我在PowerShell中的代码,它可以正确缩短地址:
    param([parameter(Mandatory=$true)]$file)

if (test-path $file){
    foreach ($ip in Get-Content $file){
        $ip=$ip.Replace("0000","")
        Write-Host $ip

}
}

我不知道如何在shell中进行缩短,我尝试过这种方法,但是没有用:
#!/bin/sh

if [ $1 = "-help" ]
then
echo description

else file = $1
fi

for ip in `cat ipv6.txt`
do
    $ip=$line
    $replace=""
    $echo ${var//0000/$replace}
done

这是具有以下地址的txt文件:
http://uptobox.com/6woujdvdfkmh

最佳答案

我们可能会去同一所学校。这是我被告知要做的,并且效果很好:

cat filename | sed -e 's/:0*/:/g' filename

关于shell - Shell和PowerShell中的IPV6地址缩短,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27337793/

10-12 01:03