终端 - 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-eGNU 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

如果你想搜索不同的字符串,你可以使用egrepor 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

这将打印出不包含任何这些字符串的行。

相关内容