我需要使用sed来逃避哪些角色才能使这个正则表达式工作

时间:2018-06-13 09:33:44

标签: regex linux sed ip

(?<![0-9])0+(?=[0-9]+)

我需要删除IP地址格式错误的八位字节中不必要的前导零。

我想做这样的事情,但它没有用。

cat Qualys-Active-IPs.csv | awk -F';' {'print $1'} | sed 's/(?<![0-9])0+(?\=[0-9]+)//g'

2 个答案:

答案 0 :(得分:0)

解决方案是:

 sed -r 's/^0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)$/\1.\2.\3.\4/'

答案 1 :(得分:0)

您可以尝试以下代码:

sed -r 's/^0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)-0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+),...,(.*)$/\9:\1.\2.\3.\4-\5.\6.\7.\8/'