다른 텍스트 내의 문자열을 사용하여 Bash 필터 텍스트 콘텐츠

다른 텍스트 내의 문자열을 사용하여 Bash 필터 텍스트 콘텐츠

지금까지 나는 매번 필터 grep명령을 사용해왔습니다.

[root@host tests]# cat e
1
2
3
4
5
[root@host tests]# cat e | grep -Ev '2|3' > filtered.txt

[root@host tests]# cat filtered.txt
1
4
5
[root@host tests]#

하지만 이제 다른 파일의 수백 개의 문자열을 사용하여 필터링해야 하는 대용량 파일이 생겼습니다. 어떻게 해야 합니까?

답변1

다음 옵션과 함께 grep을 사용할 수 있는 것 같습니다.

   -f FILE, --file=FILE
          Obtain patterns from FILE, one per line.  If this option is used multiple times or is combined with the -e (--regexp) option, search for all patterns given.  The empty file contains zero patterns, and therefore matches
          nothing.

-F또한 (비교에서 정규 표현식이 아닌 일반 문자열로 패턴 사용) 및 -x(하위 문자열이 아닌 전체 행 비교) 을 모두 사용해야 합니다 . 그렇지 않은 -x경우 -w(전체 단어만 비교됩니다).

관련 정보