如何在Unix中删除文件中的空白/空白行?

如何在Unix / Linux中使用命令行删除空白/空白(仅包括空格)行?

file.txt的内容

Line:Text 1:<blank> 2:AAA 3:<blank> 4:BBB 5:<blank> 6:<space><space><space>CCC 7:<space><space> 8:DDD 

输出所需

 1:AAA 2:BBB 3:<space><space><space>CCC 4:DDD 

这个sed行应该做的伎俩:

 sed -i '/^$/d' file.txt 

-i表示它将在原地编辑文件。

 sed '/^$/d' file.txt 

d是删除行的sed命令。 ^$是一个正则expression式,只匹配一个空行,一个行开始,后面跟一个行结束。

您可以使用grep的-v选项来删除匹配的空行。

喜欢这个

 grep -Ev "^$" file.txt 

要删除空行,你可以用tr来挤压新的行重复:

 cat file.txt | tr -s '\n' '\n' 

简单地使用grep:

 grep . file 

或者试试:

 ex -s +'v/\S/d' -cwq test.txt 

对于多个文件(就地编辑):

 ex -s +'bufdo!v/\S/d' -cxa *.txt 

注意:: :bufdo命令不是POSIX 。

不修改文件(只在标准输出上打印):

 cat test.txt | ex -s +'v/\S/d' +%p +q! /dev/stdin