
두 개의 파일이 있습니다.
파일 1:
A0001 C001
B0003 C896
A0024 C234
.
B1542 C231
.
upto 28412 such lines
파일 2:
A0001
A0024
B1542
.
.
and 12000 such lines.
파일 2를 파일 1과 비교하고 일치하는 줄을 파일 1에 저장하고 싶습니다. Perl과 Bash를 사용해 보았지만 둘 다 작동하지 않는 것 같습니다.
최근에 시도한 것은 다음과 같습니다.
for (@q) # after storing contents of second file in an array
{
$line =`cat File1 | grep $_`; #directly calling File 1 from bash
print $line;
}
그러나 그것은 실패했습니다.
답변1
이 작업을 수행해야 합니다.
grep -Ff File2 File1
-f File2
여기에서 패턴을 읽고 패턴을 고정 문자열로 File2
처리합니다 -F
(즉, 정규식이 사용되지 않음).
답변2
당신은 그것을 사용할 수 있습니다 awk
:
$ awk 'FNR==NR{a[$1];next}($1 in a){print}' file2 file1
A0001 C001
A0024 C234
B1542 C231
답변3
두 파일 모두 첫 번째 필드에 정렬되어 있는 것 같습니다. 만일이 경우라면:
join file1 file2
파일 크기가 크면 가장 좋습니다.