2011-08-04 133 views
22

塊我有一個文本塊,看起來像這樣:使用SED刪除文本

<!-- BOF CLEAN --> 
... a bunch of stuff 
    <!-- EOF CLEAN --> 

我想刪除整個塊。什麼是sed命令?

回答

35
$ cat text 
abc 
    <!-- BOF CLEAN --> 
... a bunch of stuff 
    <!-- EOF CLEAN --> 
def 
$ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text 
abc 
def 

http://www.catonmat.net/blog/sed-one-liners-explained-part-three/

+0

SED刪除了我文件!!我做了'sed'/^0.*$/d's1d13700.c',它向控制檯吐出正確的結果,然後我做了'sed'/^0.*$/d's1d13700.c> s1d13700.c'用結果覆蓋原始文件,文件完全變空! –

+6

@ Zom-B在'sed ... s1d13700.c> s1d13700.c'中發生了什麼?在運行sed之前,shell首先創建一個新的空文件's1d13700.c',從而用相同的名稱覆蓋輸入文件。使用'sed -i.original ... s1d13700.c'來就地更改文件並將原始文件的備份創建爲's1d13700.c.original'。 –