我必须在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/