첫 번째 열을 기반으로 두 파일의 교차점 찾기

첫 번째 열을 기반으로 두 파일의 교차점 찾기

파일 A에 두 개의 파일이 있고 다른 파일 B에 시퀀스_번호가 있습니다. 열이 많고 첫 번째 열은 시퀀스 번호입니다. B의 모든 라인과 시퀀스 번호 A가 포함된 파일을 가져오려면 어떻게 해야 합니까? 목표? 감사해요

파일 A와 마찬가지로

1
3
8
9
20

문서 B

1 kfjk 3243424
2 fkdkf 23543592
3 iefjk 21493402
7 dlafdl 23435231
8 kfkdlkf 309834

답변1

나는 당신이 원하는 것 같아요 join (1):

동일한 조인 필드가 있는 각 입력 행 쌍에 대해 표준 출력에 한 행을 씁니다. 기본 조인 필드가 먼저 공백으로 구분됩니다. FILE1 또는 FILE2(둘 다는 아님)가 -이면 표준 입력을 읽습니다.

[0 1075 12:50:10] ~/temp/sx % join A B
1 kfjk 3243424
3 iefjk 21493402
8 kfkdlkf 309834
join: file 1 is not in sorted order

sort (1)좋아, 분명히 이것을 알파 값(숫자가 아닌 20 < 3)으로 정렬하는 것과 비교해야 합니다.

join <(sort A) <(sort B)나에게는 작동하지만 이상해 보입니다. 어쩌면 zsh 확장일 수도 있습니다. 이렇게 해도 나쁠 건 없어

sort A > A.tmp; sort B > B.tmp; join A.tmp B.tmp

(언제나 그렇듯 맨페이지에서 문제를 확인하세요.)

관련 정보