替换文本中的一个数字并使用新值克隆它

时间:2012-10-26 13:23:43

标签: linux shell replace

我需要更改规则中的某些数字,例如192.168.1.2到192.168.1.x,其中x是介于3到254之间的值。所以会有多行,一行的值为192.168.1.2,另一行的值为192.168.1.3,依此类推。 好吧,我不知道怎么做。 如果有人知道某个程序或某种方法在linux中使用脚本,请告诉我。

2 个答案:

答案 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}'