我成功使用以下终端命令在非常大的 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
这将打印出不包含任何这些字符串的行。