파일 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
(언제나 그렇듯 맨페이지에서 문제를 확인하세요.)