谁能告诉我如何通过 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' *
这里真的需要帮助。谢谢!
这个 sed 做:
s/pattern1/pattern2/g
替换pattern1
为pattern2
[0-9]\{1,3\}
= 1 to 3
来自的数字0-9
\.
表示单个点.
所以理论上这应该将所有文件中的所有 IP 更改为给定 IPx.x.x.x
*
意味着该文件夹中的所有文件
所以没有留下原始 IP,所以要小心这个。
PS这不是100%的工作。示例此号码3452.343.13.34
(不是 IP)将更改为3x.x.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"
但
如果这些想法很重要,那么将构建一个更复杂的 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 之间的可能数字)