단어 목록으로 grep하는 방법


84

새 줄로 구분 된 100 개의 단어가있는 파일 A가 있습니다. 파일 B를 검색하여 파일 A에있는 단어가 있는지 확인하고 싶습니다.

다음을 시도했지만 작동하지 않습니다.

grep -F A B

답변:


116

다음 옵션을 사용해야합니다 -f.

$ grep -f A B

이 옵션 -F-f패턴 파일을 지정 하는 고정 문자열 검색 을 수행합니다. 파일에 정규 표현식이 아닌 고정 문자열 만 포함 된 경우 둘 다 원할 수 있습니다.

$ grep -Ff A B

-w전체 단어 만 일치 시키는 옵션을 원할 수도 있습니다 .

$ grep -wFf A B

man grep가능한 모든 인수와 그 기능에 대한 설명을 읽으십시오 .


4
정규 표현식을 사용하지 않으려는 경우 -F는 단지 최적화입니까?
phoenix

디렉토리 트리 B의 파일 A에서 모든 단어를 찾고 B 의 모든 일치 파일 이름 만 나열하는 것은 어떻습니까?
zealoushacker 2014 년

2

큰 파일에서 매우 긴 단어 목록을 찾으려면 egrep을 사용하는 것이 더 효율적일 수 있습니다.

remove the last \n of A
$ tr '\n' '|' < A > A_regex
$ egrep -f A_regex B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.