使用sed删除一个文本块

Sco*_*son 27 unix linux sed

我有一块看起来像这样的文本:

    <!-- BOF CLEAN -->
... a bunch of stuff 
    <!-- EOF CLEAN -->
Run Code Online (Sandbox Code Playgroud)

我想删除整个块.什么是sed命令?

Max*_*kin 41

$ cat text 
abc
    <!-- BOF CLEAN -->
... a bunch of stuff
    <!-- EOF CLEAN -->
def
$ sed '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' text 
abc
def
Run Code Online (Sandbox Code Playgroud)

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

  • @ Zom-B在`sed ... s1d13700.c> s1d13700.c`中发生的事情是shell在运行sed之前首先创建一个新的空文件`s1d13700.c`,从而用同一名称覆盖你的输入文件.使用`sed -i.original ... s1d13700.c`来就地更改文件并创建原始文件的备份为`s1d13700.c.original`. (8认同)

Nad*_*tif 5

要删除所有从,包括<!-- BOF CLEAN -->,以包括结束的文本 <!-- EOF CLEAN -->,请使用以下sed命令:

sed -i '/<!-- BOF CLEAN -->/,/<!-- EOF CLEAN -->/d' file_name;
Run Code Online (Sandbox Code Playgroud)

参考:使用sed删除两个部分之间的文本或段落