0

请在这件事上给予我帮助:

我有一个文件名为:demo.txt,demo.txt的内容是:

[default]
exten=>test1,hint,SIP/202
exten=>tom,hint,SIP/233

[toyota]
exten=>test1,hint,SIP/202
exten=>tom,hint,SIP/233

[girls]
exten=>test1,hint,SIP/202
exten=>tom,hint,SIP/233

我想要一个脚本在 [toyota] 之后添加更多行,我需要做这样的事情:

[default]
exten=>test1,hint,SIP/202
exten=>tom,hint,SIP/233

[toyota]
exten=>another,hint,SIP/202
exten=>well,hint,SIP/202
exten=>test1,hint,SIP/202
exten=>tom,hint,SIP/233

[girls]
exten=>test1,hint,SIP/202
exten=>tom,hint,SIP/233

我需要另一个脚本来删除位于 [toyota] 下的行示例,我想删除:

exten=>well,hint,SIP/202

请告诉我如何以简单干净的方式做到这一点

谢谢!

4

2 回答 2

2

不确定是要从另一个文件添加更多行还是手动输入它们。如果是后者,那么您可以执行以下操作来添加新行:

awk '/^\[toyota\]/{print $0; print "exten=>another,hint,SIP/202" RS "exten=>well,hint,SIP/202";next}1' demo.txt

要删除某些行:

awk '/^\[toyota\]/{p=1}p&&/exten=>well,hint,SIP\/202/{p=0;next}1' demo.txt
于 2013-07-10T00:22:33.770 回答
0

如果 sed 是一个选项:

添加行

sed '/^\[toyota\]$/ aexten=>another,hint,SIP/202\nexten=>well,hint,SIP/202' demo.txt

删除行

sed '/^\[toyota\]$/, /^\[/ {/exten=>well,hint,SIP\/202/d}' demo.txt
于 2013-07-10T00:16:34.400 回答