아래 스크립트에서는 awk
파일 이름을 바꿀 때 두 가지 다른 결과를 볼 수 있습니다. awk가 어떻게 출력을 콘솔에 쓰는지 알고 싶습니다. 각 경우마다 다른 결과가 나옵니다.
파일 1:
abc bca cdb
abc few bre
bbc bba cdb
cbc frw bte
파일 2:
abc bca cdb
gbc fiw bpe
bbc bca cdb
cbc frw bte
스크립트:
awk 'FNR==NR {a[$1$2$3]++;next};!(($1$2$3) in a)' **file1 file2**
산출:
gbc fiw bpe
bbc bca cdb
스크립트:
awk 'FNR==NR {a[$1$2$3]++;next};!(($1$2$3) in a)' **file2 file1**
산출:
abc few bre
bbc bba cdb
답변1
file2
첫 번째 명령은 에서 찾을 수 없는 행을 제공하고, 두 번째 명령은 file1
에서 찾을 수 없는 행을 제공합니다.file1
file2
주어진 데이터에 대해 코드는 다음과 같습니다.
awk 'FNR==NR { a[$0]++; next } !($0 in a)'
a
다음에서 사용된 배열은 어디에 있습니까?첫 번째문서. 마지막 조건은 "첫 번째 파일에서 행을 찾을 수 없으면 (두 번째 파일에서) 행을 인쇄하십시오"입니다.