다음 터미널 명령을 사용하여 매우 큰 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
그러면 해당 문자열이 포함되지 않은 줄이 인쇄됩니다.