我成功使用以下終端命令在非常大的 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。-e
GNU grep 手冊頁中是這樣解釋的:
-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
or 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
這將列印出不包含任何這些字串的行。