세 개의 파일을 비교하여 가장 높은 값을 인쇄합니다.

세 개의 파일을 비교하여 가장 높은 값을 인쇄합니다.

세 개의 파일이 있습니다. 모두 하나의 열만 가지고 있습니다.

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

관련 정보