我正在尝试使用sed删除空行:

sed '/^$/d'

但我运气不佳。

例如,我有这样几行:

xxxxxx


yyyyyy


zzzzzz

我希望它是这样的:

xxxxxx
yyyyyy
zzzzzz

这个的代码应该是什么?


当前回答

你可以说:

sed -n '/ / p' filename    #there is a space between '//'

其他回答

NF是awk的命令,可用于删除文件中的空行 awk NF文件名 通过使用sed Sed -r "/^\r?美元/ d”

Sed '/^$/d'应该是好的,你期望修改文件到位吗?如果是这样,您应该使用-i标志。

也许这些行不是空的,如果是这样的话,看看这个问题从txtfiles中删除空行,从行开始和行结束删除空格,我相信这就是你想要达到的目的。

你也可以使用"grep"来做类似的事情:

egrep -v "^$" file.txt

另一个没有sed, awk, perl等的选项

strings $file > $output

字符串-打印文件中可打印字符的字符串。

在“空”行中可能有空格或制表符。使用POSIX类和sed删除所有只包含空格的行:

sed '/^[[:space:]]*$/d'

一个使用ERE的短版本,例如gnu sed:

sed -r '/^\s*$/d'

(注意sed不支持PCRE。)