我写一个awk的脚本,需要输入的一些列在一个文本文件,并在每列打印出最大的价值值Gawk的打印最大从每列
输入:
$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
输出:
脚本:
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
}
感谢您的帮助
我不明白'$ 2> $ 3'并在代码'$ 3> val'测试;他们似乎根本不涉及问题描述(找到每列中最大的值)。试试'awk'{print $ 1 $ 3;}'
sarnold
井$ 1 $ 2和$ 3是列号 – BillPull
到目前为止好。你为什么要将列号相互比较? – sarnold