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

时间:2014-03-10 13:26:39

标签: bash sed

我正在使用sed编辑文件。

我正在使用此

sed -i 's/^display.*//g'

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

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

2 个答案:

答案 0 :(得分:7)

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

sed -i '/^display/d' file

请注意,甚至没有必要用.*表示其余行,只需^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

答案 1 :(得分:0)

您提到您正在编辑该文件,因此使用vim即可:

:g/^display/d