지금까지 나는 매번 필터 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
(전체 단어만 비교됩니다).