두 파일 간의 공통 요소를 찾는 방법은 무엇입니까?

두 파일 간의 공통 요소를 찾는 방법은 무엇입니까?

예를 들어 다음 정보가 포함된 파일이 2개 있습니다.

파일 1:

12
13
14
15

문서 #2:

12 1
13 2
14 2
15 6
16 7
17 8

결과물 파일:

1
2
2
6

출력 파일에서는 파일 #1의 첫 번째 열과 일치하는 파일 #2의 두 번째 열 값만 필요합니다. Linux에 관련 유틸리티 기능이 있습니까? 저는 쉘 스크립팅이 처음입니다. 누구든지 도와주실 수 있나요?

답변1

join명령을 사용하여 특정 열의 파일을 연결하고 awk출력을 구문 분석할 수 있습니다.

열 1에서 이러한 파일을 결합하려면 매개변수를 -j 1결합 명령에 전달합니다.

usr@srv % join -j 1 test test2 
12 1

13 2

14 2

15 6

awk그런 다음 두 번째 열만 인쇄 하는 데 사용됩니다 .

usr@srv % join -j 1 test test2 | awk '{print $2}'
1

2

2

6

답변2

awk 'NR==FNR{c[$1]++;next};c[$1] == 1' file1.txt file2.txt | awk ' { print $2 } '

관련 정보