如何使用awk删除文本文件中的行间距?

如何使用awk删除文本文件中的行间距?,awk,Awk,我想使用awk删除文本文件中的行间距。我怎样才能用awk做到这一点 abcd abcd abcd 期望的输出是 abcd abcd abcd 这将只输出非空行 awk '/./' test.txt 这是另一种不使用grep的方法(匹配空行,然后使用-v反转结果): 将仅打印文件data.txt中的非空行。它的工作原理是只打印非零(即大于零)字段数(NF)的行 或者 awk 'length' data.txt 只打印长度不为零(即大于0)的行 还有其他工具,如sed或grep,也可以这

我想使用awk删除文本文件中的行间距。我怎样才能用awk做到这一点

abcd

abcd

abcd
期望的输出是

abcd
abcd
abcd

这将只输出非空行

awk '/./' test.txt
这是另一种不使用grep的方法(匹配空行,然后使用-v反转结果):

将仅打印文件
data.txt
中的非空行。它的工作原理是只打印非零(即大于零)字段数(
NF
)的行

或者

awk 'length' data.txt
只打印长度不为零(即大于0)的行


还有其他工具,如
sed
grep
,也可以这样做,但由于您特别要求使用
awk
解决方案。

要覆盖输入文件,您可以使用
海绵


也许这些行(仅)有空格(或没有):

sed的情况也一样:

sed '/^[[:blank:]]*$/d' inputfile

海绵
不是我常规Ubuntu安装的一部分,这是需要额外安装的吗?只是好奇。
海绵
是软件包
moreutils
的一部分。。它以一些有时处理得不太好的方式处理覆盖,例如,符号链接感谢信息,听起来很有用,我必须检查一下
awk 'length' data.txt
awk '/./ {print}' file | sponge file
awk '!/^[[:blank:]]*$/' inputfile
sed '/^[[:blank:]]*$/d' inputfile