awk는 두 파일을 비교하고 파일 1의 첫 번째 필드를 인쇄합니다.

awk는 두 파일을 비교하고 파일 1의 첫 번째 필드를 인쇄합니다.

그런 파일이 두 개 있습니다.

파일 1

1:apple
2:banana
3:pineapple
4:guava
5:orange

그리고 파일 2는 이렇게

apple
guava
orange

파일 2를 파일 1과 비교하고 파일 2에서 누락된 행의 첫 번째 필드를 인쇄하고 싶습니다.

원하는 출력

3
4

내가 시도한 코드는

파일1 <(컷 -d: -f2 파일2)

하지만 내가 얻는 결과는 다음과 같습니다

1a2,3
> banana
> pineapple

답변1

연관 배열 조회에 Awk를 사용하는 것은 어떻습니까?

awk -F: 'NR==FNR {a[$1]; next} !($2 in a) {print $1}' file2 file1
2
3

답변2

사용 grep:

grep -vwf file2 file1 | cut -d: -f1
2
3

관련 정보