我想使用awk删除文本文件中行之间的空格。我怎么能用awk做到这一点?
abcd
abcd
abcd
所需的输出是
abcd
abcd
abcd
答案 0 :(得分:2)
awk 'NF' data.txt
将仅打印文件data.txt
中的非空行。它仅通过打印具有非零(即大于零)的字段数(NF
)的行来工作
可替换地,
awk 'length' data.txt
仅通过打印长度非零(即大于0)的行来工作。
还有其他工具,例如sed
或grep
,也可以执行此操作,但因为您特别要求awk
解决方案。
答案 1 :(得分:1)
这将仅输出非空行
awk '/./' test.txt
这是一个替代的unsing grep(匹配空行,然后用-v反转结果):
grep -v ^$ test.txt
答案 2 :(得分:1)
要覆盖输入文件,您可以使用sponge
:Is there a way to modify a file in-place
awk '/./ {print}' file | sponge file
答案 3 :(得分:0)
也许这些行只有空格(仅)(或不):
awk '!/^[[:blank:]]*$/' inputfile
与sed
相同:
sed '/^[[:blank:]]*$/d' inputfile