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 に答える