有没有人能告诉我如何通过一个命令批量替换多个文件中的i?这个sed命令是做什么的?
sed 's/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/x.x.x.x/g' *我真的很需要帮助。谢谢!
发布于 2013-11-13 15:34:07
这个sed做的是:
s/pattern1/pattern2/g用pattern2取代pattern1
[0-9]\{1,3\} =来自0-9的1 to 3数字
\.表示单点.
因此从理论上讲,这应该会将所有文件中的所有IP更改为给定的IP x.x.x.x
*表示此文件夹中的所有文件
所以没有留下原始的IP地址,所以要小心。
PS这不是100%的工作。例如,此编号3452.343.13.34 (不是IP)将更改为3x.x.x.x
发布于 2013-11-13 18:09:22
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之间的数字)
https://stackoverflow.com/questions/19947429
复制相似问题