두 파일을 비교하고 true 또는 false 값을 반환합니다.

두 파일을 비교하고 true 또는 false 값을 반환합니다.

두 개의 파일이 있는데 하나는 열이 있습니다.
두 파일의 첫 번째 줄이 동일하면 1을 인쇄하고, 그렇지 않으면 0을 인쇄합니다.

file1:

M
A
A
M

file2:

M
M
A
A

output:

1
0
1
0

누구든지 이 작업을 수행할 수 있는 awk 스크립트를 보여줄 수 있나요?

답변1

이 시도:

$ awk '!NF{next} FNR==NR{a[FNR]=$1;next};{print $1==a[FNR]  ? 1 : 0}' file1 file2
1
0
1
0

설명하다

  • !NF{next}: 빈 줄은 필요하지 않습니다. 건너뛰세요.
  • FNR==NR{a[FNR]=$1;next}: 처리하는 동안 file1첫 번째 필드를 연관 배열에 저장하고 인덱스는 행 번호입니다.
  • {print $1==a[FNR] ? 1 : 0}: 처리하는 동안 첫 번째 필드 값이 연관 배열에 저장된 해당 값 file2과 같은지 확인합니다 . 그렇다면 1을 인쇄하고, 그렇지 않으면 0을 인쇄합니다.file1a

답변2

paste file1 file2 | while read a b; do [[ $a != "$b" ]]; echo $?; done

[[명령은 성공 시 상태 0, 실패 시 1을 반환합니다.

관련 정보