一下子就全搞定

use*_*702 4 performance grep

我拥有的脚本接收参数并需要通过另一个文件进行 grep。脚本循环遍历每个参数。

有没有办法在单个搜索字符串中收集参数并使用 OR 进行 grep ?我想这样做是为了提高速度,希望一次搜索所有内容会使我的脚本更快。欣赏任何想法。

Sté*_*las 5

grep -e foo -e bar -e baz files
Run Code Online (Sandbox Code Playgroud)

或者:

grep 'foo
bar
baz' files
Run Code Online (Sandbox Code Playgroud)

如果这些foobarbaz旨在为字符串,而不是基本的正则表达式中,添加-F选项,那些2个grep 上面的命令。

对于扩展正则表达式:

grep -E 'foo|bar|baz' files
Run Code Online (Sandbox Code Playgroud)

如果字符串列表位于位置参数 ( $1, $2...) 中:

NL='
'
IFS=$NL  # or IFS=$'\n' with ksh93/zsh/bash/mksh/FreeBSD sh...
grep -Fe "$*" files
Run Code Online (Sandbox Code Playgroud)

($*是位置参数与 的第一个字符的串联$IFS)