我正在尝试在名为data.dat的文件的三列中找到最大值。这个想法是
5414 6267 3157
4521 1235 5418
1366 6472 4598
5153 7814 5648
5414
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 ' ##Starting awk program from here.
{
for(i=1;i<=NF;i++){ ##Start a for loop from 1st field to last field of current line.
arr[i]=(arr[i]>$i?arr[i]:$i) ##Creating array arr with index of column number and keeping only greater value by comparing its [revious value in each iteration.
}
}
END{ ##Starting END block of this awk program from here.
for(k=1;k<=NF;k++){ ##Starting a loop from k=1 to till number of fields here.
print arr[k] ##Printing value of arr with index of k here.
}
}' Input_file ##Mentioning Input_file name here.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句