如何在处理IPv6的ubuntu批处理脚本中处理正则表达式

时间:2016-09-17 15:22:04

标签: linux shell ubuntu-14.04 ipv6

我使用radvd以3002:0200:00bc:098a :: / 64格式生成64位前缀,但它以3002:200的形式显示在客户端设备的eth0中:bc:98a :: / 64。现在我有脚本提取此地址并保存到文件中,例如" temp" as 3002:200:bc:98a。我现在需要将其更改为表格3002:0200:00bc:098a我们将不胜感激。

1 个答案:

答案 0 :(得分:0)

$ cat ip.txt 
3002:200:bc:98a
20:1:ad:8b

$ perl -lpe 's/[^:]+/sprintf "%04s", $&/ge' ip.txt
3002:0200:00bc:098a
0020:0001:00ad:008b
  • [^:]+要转换的字段
  • ge其中g用于替换所有匹配,e是允许在替换部分中使用Perl代码
  • sprintf "%04s", $&根据需要格式化匹配的字符串
相关问题