Awk 匹配后在文件中添加和删除行

Awk 匹配后在文件中添加和删除行,awk,Awk,请帮助我: 我有一个文件名为: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 我想要一个脚本,在[toyo

请帮助我:

我有一个文件名为: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
请告诉我,我怎样才能以一种简单干净的方式做到这一点

谢谢

如果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

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

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

嗨,它工作正常,但可以使用sed删除。上面写着错误。它说:[root@Linuxshm]#sh del.sh sed:-e表达式#1,字符45:未知命令:`2'[root@Linuxshm]#@Manuel,哎呀……必须在202之前退出
/
,现在尝试编辑后的答案如何在202之后添加和删除一行;(丰田)@Manuel你是说它不工作还是真的工作了?:)