sed 写入的新文件中的空行

blank lines in new file written by sed

我用sed '/pattern/d' file > newfile删除了文本文件中的一些行,但是新文件中留下了很多空行。

如何修改命令以避免空行?

sed '/pattern/d; /^$/d' file > newfile

this Stack Overflow post

中有一些关于删除文件中空行的正则表达式的很好的讨论
sed '/^$/d' file >newfile

...将为您完成。

您使用的命令将删除所有要删除的行,但会保留原始文件中已有的空白行。要也删除这些,只需对输入应用第二个过滤器:

$ sed -e '/pattern/d' -e '/^[:blank:]*$/d' <file >newfile

第二个过滤器将删除空行,或仅包含空白字符的行(即外观上 "blank")。