根据位置替换即可:
read ip
sed -ri "/subnet/s/(subnet )[^ ]+( netmask.*)/\1$ip\2/" /mnt/file
/subnet/ - 先正则匹配到含有subnet的行,然后替换。
替换的时候将不变的部分用小括号括起来,后面依次用脊祥链\1 , \2 原封不动地引宴掘用回来。樱孙
-r 选项用于支持扩展正则,这样就不需要额外的转义符。
[^ ] 表示不为空格的任意一个字符,+ 表示重复该字符至少1次。
oldip=`cat /mnt/file | grep "subnet" | awk '{print $2}'` //取得那个位空枣置的庆亏橘ip
sed -i "s/$oldip/\$ip/" /mnt/file //替换为誉团新的IP
是192.168.1.0会变橘燃但是他所在的行数不早燃变的意思吗
sed '行数s/xxxx/bbbb/陆伍虚' aaa.file