두 필드를 비교하고 awk를 사용하여 무언가를 인쇄하는 방법

두 필드를 비교하고 awk를 사용하여 무언가를 인쇄하는 방법

file1다음이 있다고 가정해 보겠습니다 .

1,2,3,4,12,6
1,2,3,5,333,6
1,2,3,12,5,6
1,2,3,44,101,6

또한 file2다음이 포함됩니다:

22,4,111,1,6,7,12
22,4,56,55,6,7,12
22,4,12,12,6,7,12
22,4,333,102,6,7,12

내가 원하는 것은 5th필드 file1값이 3rd인쇄된 필드 값 보다 큰 경우입니다 file2.Value 333 greater than 56

awk를 사용하여 이 작업을 어떻게 수행할 수 있나요?

답변1

$ awk -F, 'FILENAME=="file1" {inputs[FNR]=$5} FILENAME=="file2" && inputs[FNR] > $3 {print inputs[FNR] " is greater than " $3 " on line " FNR}' file1 file2
333 is greater than 56 on line 2

답변2

동일한 원하는 출력을 얻기 위해 다음 방법을 사용했습니다.

for i in {1..4}; do second_file=`awk -F "," -v i="$i" 'NR==i{print $3}' j.txt`; first_file=`awk -F "," -v i="$i" 'NR==i {print $5}' l.txt`; if [[ $first_file -gt  $second_file ]]; then echo $first_file is greater than $second_file; fi; done

산출

333 is greater than 56

관련 정보