다중 Grep 결과 파이프라인

다중 Grep 결과 파이프라인

결과 가 있고 grep특정 필터 태그로 일부 행을 필터링하고 싶습니다. 예를 들어, 다음 줄이 주어지면 원하는 출력은 입니다 this is a desired line.

This is a desired line
This is a desired line with filter token_1
This is a desired line with filter token_2
this is a undesired line

명령이 실행됩니다 grep -rnw . -e "desired".

This is a desired line
This is a desired line with filter token_1
This is a desired line with filter token_2

token_1태그 합계 로 행을 필터링하는 방법은 무엇입니까 token_2? 어떻게든 배열 함수를 사용하는 것 같지만 grep_ignores=( 'token_1' 'token_2' )지금까지 시도한 결과 이스케이프 문자가 깨졌기 때문에 또는 smoehow를 \n사용해야 한다고 생각하게 됩니다 .awkperl

답변1

제외할 패턴 목록을 텍스트 파일에 넣습니다.

cat mypatterns.txt
token_1
token_2

이제 첫 번째 grep의 결과를 다음 표현식으로 파이프합니다.

grep -f mypatterns.txt  -v

관련 정보