如何从文件中删除空行(包括制表符和空格)?

如何从文件中删除空行(包括制表符和空格)?

我想从文件中删除所有空行。即使该行包含空格或制表符,也应该将其删除。

答案1

这是一个awk解决方案:

$ awk NF file

对于awkNF仅在非空行上设置。当此条件匹配时,awk默认操作print将打印整行。

答案2

grep适用于非空白:

grep '[^[:blank:]]' < file.in > file.out

[:blank:],在字符范围 ( [...]) 内,称为 POSIX 字符类。有一些像[:alpha:], [:digit:]...[:blank:]匹配水平空白(在 POSIX 语言环境中,即空格和制表符,但在其他语言环境中可能有更多,如 UTF8 语言环境中的所有 Unicode 水平间距字符),同时[[:space:]]匹配水平和垂直白色空格字符([:blank:]与垂直制表符、换页符等相同)。

grep '[:blank:]'

:将返回包含任何字符 、 、blan的行k。字符类仅在 内被识别[...],并且^在 内[...]否定该集合。 So[^[:blank:]]表示除空白字符之外的任何字符。

答案3

怎么样:

sed -e 's/^[[:blank:]]*$//' source_file > newfile

或者

sed -e '/^[[:blank:]]*$/d' source_file > newfile

IE

对于每一行,替换:

  • 如果它开始(“ ^”)
  • 带有空格或制表符 (" [[:blank:]]") 零次或多次 (" *")
  • 然后是行尾 (" $")

有关 ::blank:: 和其他特殊字符的更多信息,请访问http://www.zytrax.com/tech/web/regex.htm#special

答案4

您可以使用sed命令删除空行:

sed '/^$/d' in > out

该命令删除文件“in”中的所有空行

相关内容