2013-07-09 51 views
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 

我想腳本添加更多的行之後[豐田],我需要的東西,做這樣的事情:

[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 

我需要另一個腳本刪除位於下[豐田] 例線,我想德爾ETE:

exten=>well,hint,SIP/202 

請告訴我,我該怎麼辦,在一個簡單幹淨的方式

謝謝!

回答

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 
+0

嗨它工作正常,但它可以刪除使用SED。它說錯誤。 它說: [根@ Linux的SHM] sed的#SH del.sh :-e表達#1,炭45:未知命令:'2' [根@ Linux的SHM]# – Manuel

+0

@Manuel,糟糕。 ..要在202之前轉義'/',請現在嘗試編輯的答案 – iruvar

+0

它的工作原理!非常感謝! – Manuel

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 
+0

好吧,不是它的作品。謝謝! – Manuel

+1

@曼努埃爾你的意思是**不**工作或它**工作? :) –

+5

+1不適用。謝謝! :) – Endoro