テキストファイルの入力のいくつかの列を取り、各列の最大値を出力する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
}
助けてくれてありがとう