我需要更改规则中的某些数字,例如192.168.1.2到192.168.1.x,其中x是介于3到254之间的值。所以会有多行,一行的值为192.168.1.2,另一行的值为192.168.1.3,依此类推。 好吧,我不知道怎么做。 如果有人知道某个程序或某种方法在linux中使用脚本,请告诉我。
答案 0 :(得分:1)
这是使用GNU sed
的一种方式。只需将X
替换为您要使用的值。
sed 's/\(\([0-9]\{1,3\}\.\)\{3\}\)[0-9]\{1,3\}/\1X/g' file.txt
测试:
echo "192.168.1.4" | sed 's/\(\([0-9]\{1,3\}\.\)\{3\}\)[0-9]\{1,3\}/\1X/g'
结果:
192.168.1.X
答案 1 :(得分:1)
另一个选择,使用awk
来避免毛茸茸的正则表达式路线(一般的正则表达式没有任何问题,但有时候它们会使你的眼睛流血......):
awk -F. '{printf "%s.%s.%s.x\n",$1,$2,$3}'