3つのファイルを比較して、最も高い値を印刷します。

3つのファイルを比較して、最も高い値を印刷します。

3つのファイルがあります。すべて1列しかありません。

File1 
M
0
M
A

File2 
A
0
M
A

File3
M
0
A
A

3つのファイルの各行、つまり最初の行(M、A、M)を比較するため、最大発生回数はMです。出力ファイルの最初の行にはMを含める必要があります。 3つのファイルの他の行にも同様に適用されます。

Output file
M
0
M
A

誰でもこれについてawkスクリプトを教えてもらえますか?

答え1

次のようにしてみてください。

awk '$1"">A[FNR]{A[FNR]=$1} END{for(i=1; i<=FNR; i++)print A[i]}' file*

$1""文字列比較を実行できるように、$ 1を文字列コンテキストに強制するために使用されます。

答え2

GNU awkの使用

paste  file{1..3} | awk '{n=split($0, a, "\t");
           asort(a,b,"@val_str_desc"); print b[1]}'

答え3

paste file[123] |
while read -a values; do printf "%s\n" "${values[@]}" | sort | tail -1; done

関連情報