
다음과 같은 두 개의 파일이 있습니다.
파일 1
apple fruit 10 4
strawberry fruit 22 11
berry fruit 33 33
ball toy 1 12
straw thing 2 33
파일 2
strawberry straw berry
rawberry raw berry
파일 2의 열 1을 파일 1의 열 1과 비교하고, 파일 2의 열 2를 파일 1의 열 1과, 파일 2의 열 3을 파일 1의 열 1과 비교하고 싶습니다. 일치하는 항목이 발견되면 파일 1에 일치하는 세 줄을 모두 표시하고 싶습니다.
여기서 출력은 다음과 같아야 합니다.
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
어떻게 해야 하나요?
답변1
$ awk 'NR==FNR{a[$1]=$0} $1 in a && $2 in a && $3 in a{print a[$1] ORS a[$2] ORS a[$3]}' file1 file2
strawberry fruit 22 11
straw thing 2 33
berry fruit 33 33
- 첫 번째 열을 기준으로 행을 저장한
file1
다음file2
세 개의 열 행이 모두 일치하면 일치하는 행을 인쇄합니다.