Awk 如何从列中查找最大值
我试图在名为data.dat的文件的三列中找到最大值。这个想法是Awk 如何从列中查找最大值,awk,Awk,我试图在名为data.dat的文件的三列中找到最大值。这个想法是 5414 6267 3157 4521 1235 5418 1366 6472 4598 5153 7814 5648 我正在尝试使用awk作为 for k in {1..3};awk 'BEGIN {max = 0} {if ('$k'>max) max='$k'} END {print max}' data.dat;done 但我并不走运。请您尝试以下内容,并用GNUawk中显示的示例编写和测试 awk ' {
5414 6267 3157
4521 1235 5418
1366 6472 4598
5153 7814 5648
我正在尝试使用awk
作为
for k in {1..3};awk 'BEGIN {max = 0} {if ('$k'>max) max='$k'} END {print max}' data.dat;done
但我并不走运。请您尝试以下内容,并用GNU
awk
中显示的示例编写和测试
awk '
{
for(i=1;i<=NF;i++){
arr[i]=(arr[i]>$i?arr[i]:$i)
}
}
END{
for(k=1;k<=NF;k++){
print arr[k]
}
}' Input_file
awk'
{
对于(i=1;i$i?arr[i]:$i)
}
}
结束{
对于(k=1;k您能否尝试使用GNUawk
中显示的样本编写并测试以下内容
awk '
{
for(i=1;i<=NF;i++){
arr[i]=(arr[i]>$i?arr[i]:$i)
}
}
END{
for(k=1;k<=NF;k++){
print arr[k]
}
}' Input_file
awk'
{
对于(i=1;i$i?arr[i]:$i)
}
}
结束{
对于(k=1;k这就是awk
数组的用途。您可以简单地在每个字段上循环,使用字段编号作为数组索引,并将值与当前字段值进行比较。如果值更大,则使用当前值更新该索引处的值,例如
awk '{
for (i=1; i<=NF; i++)
if ($i > a[i])
a[i] = $i
}
END {
for (j = 1; j < i; j++)
print a[j]
}' file
这就是awk
数组的用途。您可以简单地在每个字段上循环,使用字段编号作为数组索引,并将值与当前字段值进行比较。如果值更大,则使用当前值更新该索引处的值,例如
awk '{
for (i=1; i<=NF; i++)
if ($i > a[i])
a[i] = $i
}
END {
for (j = 1; j < i; j++)
print a[j]
}' file
哦…哦…不要在循环中调用awk
。awk
能够处理所有问题,而且速度会快几个数量级。在循环中,每次迭代都会产生一个单独的过程。我不太擅长使用awk,我该怎么做呢?哦…哦…不要在循环中调用awk
。awk
的能力非常强在循环中,每次迭代都会产生一个单独的过程。我不太擅长使用awk,我该怎么做呢?
$ awk '{
> for (i=1; i<=NF; i++)
> if ($i > a[i])
> a[i] = $i
> }
> END {
> for (j = 1; j < i; j++)
> print a[j]
> }' file
5414
7814
5648