我想在字符串匹配+ 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行后添加'gateway 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条操作。
史蒂芬

最佳答案

这似乎可行:

sed '/^iface eth1/{N;N;s/$/\ngateway 192.168.1.1/}' input.txt

-i选项添加到sed以将结果保存回input.txt

关于sed - 'sed': How to add new line after string match + 2 lines,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16214828/

10-16 11:44