查询shell脚本

时间:2017-03-06 11:40:10

标签: awk sed

我有以下o / p,

2001:8888:5678:ddd2::32 via 2001:8888:5678:dde0::1 dev vlan3943 

我希望它转换如下,

2001:8888:5678:ddd2::32/128 via 2001:8888:5678:dde0::1 dev vlan3943

即。添加" / 128"在" 2001:8888:5678之后:ddd2 :: 32"

1 个答案:

答案 0 :(得分:0)

使用sed命令进行简单替换:

line="2001:8888:5678:ddd2::32 via 2001:8888:5678:dde0::1 dev vlan3943" 
echo $line | sed -r 's/^(([0-9a-f]{1,4}:){3}[0-9a-f]{1,4}::[0-9]+)/\1\/128/'

-r选项,允许扩展常规表达

^(([0-9a-f]{1,4}:){3}[0-9a-f]{1,4}::[0-9]+) - 将匹配输入字符串开头的IPv6地址