gpt4 book ai didi

linux - Gawk 打印每列的最大值

转载 作者:太空狗 更新时间:2023-10-29 11:16:00 27 4
gpt4 key购买 nike

我正在编写一个 awk 脚本,它接受文本文件中的一些输入列并打印出每列中的最大值

输入:

 $cat numbers
10 20 30.3 40.5
20 30 45.7 66.1
40 75 107.2 55.6
50 20 30.3 40.5
60 30 45.O 66.1
70 1134.7 50 70
80 75 107.2 55.6

输出:

80  1134.7  107.2       70

脚本:

BEGIN {
val=0;
line=1;
}
{
if( $2 > $3 )
{
if( $2 > val )
{
val=$2;
line=$0;
}
}
else
{
if( $3 > val )
{
val=$3;
line=$0;
}
}
}
END{
print line
}

当前输出:

 60 30  45.O    66.1

第一个awk脚本我做错了什么

=======解决方案======

 END {
for (i = 0; ++i <= NF;)
printf "%s", (m[i] (i < NF ? FS : RS))
}
{
for (i = 0; ++i <= NF;)
$i > m[i] && m[i] = $i
}

感谢帮助

最佳答案

由于您有四列,因此您至少需要四个变量,每列一个(或者一个数组,如果您愿意的话)。而且您不需要完整地保留任何一条线。独立处理每一列。

关于linux - Gawk 打印每列的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440491/

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