터미널 - Macbook GREP 쿼리

터미널 - Macbook GREP 쿼리

다음 터미널 명령을 사용하여 매우 큰 csv 파일에서 특정 텍스트를 찾고 별도의 csv 파일을 출력으로 생성하고 있습니다.

grep "text" filename.csv > outputfile.csv

유사한 명령을 사용하여 여러 다른 텍스트를 검색하고 동일한 출력 파일에 저장할 수 있는 방법이 있습니까?

답변1

다음을 사용하여 여러 패턴을 검색할 수 있습니다 -e.

grep -e text1 -e text2 filename.csv > outputfile.csv

GNU grep, FreeBSD grep 및 busybox grep 구현으로 테스트되었으며, POSIX. GNU grep 맨페이지에서는 다음과 같이 -e설명합니다.

   -e PATTERN, --regexp=PATTERN
          Use PATTERN as the pattern.  If this option is used
          multiple times or is combined with the -f (--file)
          option, search for all patterns given.  This option can
          be used to protect a pattern beginning with "-".

답변2

원칙적으로 정규식에 "OR" 스타일 대안을 사용할 수 있습니다.

grep "text1\|text2" filename.csv > outputfile.csv

또는

grep -E "text1|text2" filename.csv > outputfile.csv

grep사용 가능한 구문은 설치된 버전에 따라 다소 다릅니다 (위의 내용은 확실히 GNU grep에서 작동합니다).

답변3

다른 문자열을 검색하려면 egrep또는 다음을 사용할 수 있습니다 grep -E.

egrep "text|string|word|" filename.csv > outputfile.csv

grep -E "seal|walrus|otter" filename.csv > outputfile.csv

그러면 해당 문자열 중 하나가 포함된 행이 인쇄됩니다. 다음과 같은 다른 옵션과 결합할 수도 있습니다.

egrep -v "text|string|word|" filename.csv > outputfile.csv

그러면 해당 문자열이 포함되지 않은 줄이 인쇄됩니다.

관련 정보