다른 파일의 공통 정보를 기반으로 파일에서 줄을 추출하는 방법은 무엇입니까?

다른 파일의 공통 정보를 기반으로 파일에서 줄을 추출하는 방법은 무엇입니까?

내 파일은 다음과 같습니다: file1:

8189157 7423700 7227471
8189199 7533538 7574425
8189200 7533538 7574425
8189273 7241932 7538338
8191298 6353935 6770138
8191332 7427024 7756709
8192601 6353935 7378544
8192680 7533538 7574348
8193100 6678109 7755961
8193158 6678109 7367734
8193159 6678109 7367734
8193176 7427024 7377679
8193180 7427024 7377679
8193227 6678109 7347206
8207305 7427024 7575134
8207315 6353935 7767680
8207316 6353935 7767680
8207317 6353935 7767680
8207371 6678109 7793130
8209083 7533538 7426859
8212702 7268724 7367752
8212704 7268724 7367752
8212718 7753798 7575212
8212719 7753798 7575212

file2와 공통 값을 갖는 file1에서 모든 줄을 추출하고 싶습니다.

7753798
6353935
7423700

따라서 결과는 세 번째 파일이어야 합니다. 예를 들면 다음과 같습니다.

8212718 7753798 7575212
8212719 7753798 7575212
8207315 6353935 7767680
8207316 6353935 7767680
8207317 6353935 7767680
8191298 6353935 6770138
8192601 6353935 7378544
8189157 7423700 7227471

어떤 제안이라도 실제 file1이 상당히 크다는 사실을 고려하십시오.

감사해요

답변1

핵심은 당신이 필요로하는 것 -f입니다 grep.

$ grep -f file_with_patterns file_to_scan > result_file

답변2

다음과 같은 결과를 쉽게 얻을 수 있습니다.

while read FIRST
do
cat a.txt | grep "$FIRST" >> resut.txt
done < b.txt

a.txt파일이 이고 b.txt결과를 얻고 싶다고 가정해 보겠습니다 result.txt.

파일을 반복하여 b.txt한 줄씩 데이터를 가져오고(여기서 while 루프를 사용할 수 있음) FIRST변수에서 데이터를 가져온 다음 파일에서 데이터를 grep검색 하는 데 사용 b.txt하고 데이터를 result.txt.

관련 정보