gpt4 book ai didi

bash - awk NF 文件名是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 09:03:39 26 4
gpt4 key购买 nike

我有以下文件:

cat testing.txt
==============
line1 1
line2 2 2


line3 3 3

line4

我可以理解 awk 'NF > 0' testing.txt 是如何工作的。此命令仅处理每条记录中超过 1 个字段的字段数,因此空行和制表符将被删除。

awk 'NF>0' testing.txt
line1 1
line2 2 2
line3 3 3
line4

但是我无法理解 awk NF testing.txt 是如何工作的。它正在做与上面相同的事情。

awk NF testing.txt
line1 1
line2 2 2
line3 3 3
line4

在这种情况下我没有指定任何条件。它仍然工作正常,并从每条记录中删除了空行和制表符。

我可以在 Web 上看到很多引用资料,其中说我们可以使用此命令从文件中删除空行或制表符。还是看不懂语法。

最佳答案

NF 代表N字段。因此,只要 NF 大于 0,awk 就会解释为 True。所以实际上这是在做:

if NF>0  --> True
if NF==0 --> False

由于 awk 的默认行为是 {print $0},这意味着它会:

if NF>0   --->  True   ---> {print $0}
if NF==0 ---> False ---> nothing

所以 awk NF file 的意思是:打印至少有一个字段的所有行。这自动暗示:打印所有非空行。

关于bash - awk NF 文件名是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23544804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com