如何在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