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

Replace 用sed HP-UX替换多个文件中的多个IP,replace,sed,ip,Replace,Sed,Ip,谁能告诉我如何用一个命令批量替换多个文件中的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' * 这里真的需要帮助。谢谢 此sed具有以下功能: s/pattern1/pattern2/g 将pattern1替换为pattern2 [0-9]\{1,3\}=0-9 \。表示单个点 因此理论上,这应该将所有文件中的所有IP更改为给定IPx.x.x.x *表示此文件夹

谁能告诉我如何用一个命令批量替换多个文件中的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' *
这里真的需要帮助。谢谢

此sed具有以下功能:

s/pattern1/pattern2/g
pattern1
替换为
pattern2

[0-9]\{1,3\}
=
0-9

\。
表示单个点

因此理论上,这应该将所有文件中的所有IP更改为给定IP
x.x.x.x

*
表示此文件夹中的所有文件
所以没有原始IP留下,所以小心这个

PS这不是100%工作。示例此编号
3452.343.13.34
(非IP)将更改为
3x.x.x

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"
但是

  • 如果一个数字(数字)在之前或之后,则被忽略,并将内部部分视为IP
  • 如果大于255和300以下的数出现,它们仍然被认为是IP
  • 不包括以0开头的IP(如120.008.099.234)
  • 如果这些想法是正确的,那么一个更复杂的方法就是构建(我认为是级联的)


    (仍然可能是255到300之间的数字)

    它实际上似乎不起作用。我确实想替换文件夹中所有文件中的所有IP。IP实际上保持着机智,当我为x.x.x.x做grep时,我什么也得不到。谢谢你的回复!让我们看看你的意见。对于我的文件,它可以工作,这也是:
    echo“test 10.5.2.20和另一个192.168.12.23”| sed的/[0-9]\{1,3\\.[0-9]\{1,3\\.[0-9]\{1,3\\.[0-9]\{1,3\}/x.x.x/g”test x.x.x.x.x.x.x和另一个x.x.x.x.x.x
    很抱歉回复太晚,我正忙于其他事情。无论如何,没有输出。它只是“挂起”。顺便说一句,它也可以在Solaris10或11中运行吗?这种方法更有意义,但是像前面的方法一样,它也不起作用(0-9.[[012[0 0,1 1 1}[0-9[0,1 1 0 0,1 1[0,1 1 1 1 0 0 0-1[0-9[0-0-9[0-9 7 7 7 7.[3 7 7 7 7 7 7 7 7.//\55.[3.[3.[3.[3.[3.[3.////[3.[3.[3.[3.[3.[3]3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3.[3]3]3]3.[3.[3.[3.[3.[3.[3.[3.[3]]]3]3]3]3.[3.[3]3]3]]3]]3.[3.[3]]]未知#由DHCP添加顺便说一句,我在Solaris 10上运行了这个。只需在AIXont/etc/主机上进行测试,就可以了。所以可能需要设置一个sed选项(比如GNU版本中的--posix)。我用“[0-9]\{1,2\}”(两次在命令中)简单地表示“[0-9]\{0,1\}[0-9]”。
    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/"