我想在字符串匹配+ 2行後添加新行。'sed':如何在字符串匹配+ 2行後添加新行
這裏是我的文件:
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 172.16.2.245
netmask 255.255.254.0
gateway 192.168.1.1
allow-hotplug eth1
#auto eth1
iface eth1 inet static
address 192.168.0.240
netmask 255.255.255.0
iface eth2 inet static
address 192.168.2.240
netmask 255.255.255.0
我想找到 'IFACE eth1的' + 2行之後添加 '網關192.168.1.1'。
例如:什麼,我需要得到執行sed命令
allow-hotplug eth0
auto eth0
iface eth0 inet static
address 172.16.2.245
netmask 255.255.254.0
gateway 172.16.2.254
allow-hotplug eth1
#auto eth1
iface eth1 inet static
address 192.168.0.240
netmask 255.255.255.0
gateway 192.168.1.1
iface eth2 inet static
address 192.168.2.240
netmask 255.255.255.0
我知道如何找到和後2號線移動,特定的字符串後追加行等,但不結合這2個操作之後。與您的文件
awk -v RS="" -v ORS="\n\n" '/iface eth1/{$0=$0"\ngateway 192.168.1.1"}1' file
: 斯蒂芬
非常感謝!這真的很有幫助。 – user2319609 2013-04-25 13:35:48
@ user2319609很高興能有幫助。順便說一下,您可以[接受答案](http://meta.stackexchange.com/a/5235/181223)。 – 2013-04-25 13:38:41
夢幻般的答案。將會經常使用這種方式,就像我以前用'line_num2 = $(grep -n'txt_to_find'targ_file.h | awk'{print $ 1}')'做的那樣',然後添加以獲得我需要的行號!這樣更有效率。 – Zmart 2014-11-16 20:19:42