如何删除bash中的许多新行?

Evi*_*ine 2 bash sed

我正在用sed编辑一个文件.

我正在使用这个

sed -i 's/^display.*//g'
Run Code Online (Sandbox Code Playgroud)

这里的问题是它不会删除\n换行符.因此,如果有许多受影响的文件,则会产生一个充满新行的文件.

那么我怎么说sed它应该删除新行,或者使用不同的bash命令删除连续有三个以上换行符的所有换行符?

fed*_*qui 7

s//g不要使用替换,而是使用d删除匹配的行:

sed -i '/^display/d' file
Run Code Online (Sandbox Code Playgroud)

请注意,甚至没有必要指出其余部分.*,只需要^display足够.

$ cat a
hello
display is something
and this is another display but
display is here
blabla

$ sed -i '/^display/d' a
$ cat a
hello
and this is another display but
blabla
Run Code Online (Sandbox Code Playgroud)