使用sed HP-UX替换多个文件中的多个IP

时间:2013-11-13 07:03:24

标签: replace sed ip

任何人都可以告诉我如何通过1个命令批量替换多个文件中的IP?这个sed命令有什么作用?

sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/x.x.x.x/g' *

这里真的需要帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

这个sed确实:

s/pattern1/pattern2/g

pattern1

替换pattern2 来自[0-9]\{1,3\}

1 to 3 = 0-9个数字 \.表示单个点.

因此理论上,这应该将所有文件中的所有IP更改为给定的IP x.x.x.x
*表示此文件夹中的所有文件
所以没有留下原始IP,所以要小心。

PS这不是百分之百的工作。例如,此号码3452.343.13.34(不是IP)将更改为3x.x.x.x

答案 1 :(得分:0)

sed "s/\([12]\{0,1\}[0-9]\{0,1\}[0-9]\.\)\{3\}[12]\{0,1\}[0-9]\{0,1\}[0-9]/x.x.x.x/g"

但是

  1. 如果数字(数字)在之前或之后,则忽略它并将内部部分视为IP
  2. 如果数字大于255且低于300,则仍将其视为IP
  3. 使用0开头的IP不包括(如120.008.099.234)
  4. 如果这些人认为有重要意义,那么构建一个更复杂的sed(我认为是级联的)就像

    sed "s/.*/#&#/;s/\([^0-9.]\)\([012]\{0,1\}[0-9]\{0,1\}[0-9]\.\)\{3\}[12]\{0,1\}[0-9]\{0,1\}[0-9]\([^0-9.]\)/\1x.x.x.x\3/g;s/^#\(.*\)#$/\1/"
    

    (仍然可能在255到300之间)