比较三个文件并打印最高值

比较三个文件并打印最高值

我有三个文件。它们都只有一列。

File1 
M
0
M
A

File2 
A
0
M
A

File3
M
0
A
A

比较三个文件中的每一行,即第一行 (M,A,M),因此最大出现次数是 M。输出文件中的 应该在第一行中包含 M。对于三个文件中的其他行也是如此

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

相关内容