gpt4 book ai didi

linux - 如何在 awk 中为每一行使用最大数量?

转载 作者:太空宇宙 更新时间:2023-11-04 10:22:37 24 4
gpt4 key购买 nike

这是一个简单的 awk 脚本 ma​​x1.awk 来获取所有行的最大长度。

#! /usr/bin/awk 
BEGIN {max =0 }
{
if (length($0) > max) { max = length($0)}
}
END {print max}

它可以通过一些测试文件获得最大长度。

awk -f max1.awk  test_file

现在将所有 awk 脚本移动到 BEGIN block 中,如下所示 ma​​x2.awk

#! /usr/bin/awk 
BEGIN {max =0;
if (length($0) > max) { max = length($0)};
print max}

为什么不能使用 awk -f max2.awk test_file 在 test_file 上打印最大长度?
我怎样才能为每一行使用最大数量?

最佳答案

BEGIN block 将在 awk 读取行之前处理,如果您的脚本只有 BEGIN block ,则不会加载任何行,只有 BEGIN 阻塞由 awk 执行。

因此,您的最大长度计算未完成。

例如

kent$  awk 'BEGIN{print length($0)}'<<<"foo"
0 #here we get 0 instead of 3, because default var in awk is "".
#If you print NR, it is 0 as well.

关于linux - 如何在 awk 中为每一行使用最大数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201411/

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