2013-08-04 1 views
4

에서 다른 파일을 가진 파일을 필터링 : 예를 들어예를 들어, 내가 번호를 가진 파일이 bash는

$cat file 
31038467 
32048169 
33058564 
34088662 
35093964 
31018168 
31138061 
31208369 
31538163 
31798862 

및 기타

$cat file2 

31208369 
33058564 
34088662 
31538163 
31038467 

와 그때에 선 다른 파일이 필요합니다 첫 번째 파일이지만 두 번째 파일은 없습니다.

cat $output 
35093964 
31018168 
31138061 
31798862 
32048169 

내 실제 파일의 행은 12'000.0000입니다.

그럼 어떻게해야합니까?

답변

9

grep -f file2 -v -F -x file1 

충분한

인가?

주 1 : 실제 질문이 있다면 시간/메모리 최적화가 필요합니다.

참고 2 : file2의 빈 줄을 제거하십시오.

+1

나는 단지'file2'를 regexps 대신 고정 문자열로 구문 분석하기 위해'-F'를 추가 할 것입니다. –

+0

중요한주의 사항 : 부분적으로 일치하는 줄입니다. 'file2'가'foo'를 포함하고'file1'이'foobar'를 포함한다면, 그 줄은 필터링 될 것입니다. 이것은 의도하지 않았을 수 있습니다. –

+0

^^ Phil과 -x가 제안한대로 -F를 추가했습니다. – anishsane