gpt4 book ai didi

awk - 解释 awk 命令 `awk ' { if (NF > max) max = NF } END { print max }'

转载 作者:行者123 更新时间:2023-12-01 11:41:48 26 4
gpt4 key购买 nike

在一本在线 awk 手册中我找到了例子awk '{ if (NF > max) max = NF } END { print max }' 该程序打印任何输入行上的最大字段数。但我不明白 awk 如何比较 (NF > max) 如果 "max" 只是未定义的字符串?它可以是 0 或 100 或 100,000? :-)

最佳答案

请考虑在第一次运行时,max 没有值。所以字段数大于不存在,max 被更新以反射(reflect)第一行中的字段数。每个循环都做同样的检查:“这一行是否比我们任意命名的变量有更多的字段?”所以当你走到最后时,你知道 max 反射(reflect)了最大字段数。

更新:@s.bandara 的评论是正确的,建议我可能应该更清楚地指出 max 的值。 @Josh Caswell 的回答提供了一些很好的技术细节,所以我将添加一个简单的例子来证明他的观点:

echo '' | awk 'END {print (monkey=="")}' // true, an undefined variable is equal to the empty string
echo '' | awk 'END {print (monkey==0)}' // true, the numerical value of an undefined variable is 0
echo '' | awk 'END {print (monkey==biscuits)}' // true, one undefined variable is equal to another
echo '' | awk 'END {print (monkey=="test")}' // false
echo '' | awk 'END {print (monkey==4)}' // false

关于awk - 解释 awk 命令 `awk ' { if (NF > max) max = NF } END { print max }',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19574967/

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