我拥有的脚本接收参数并需要通过另一个文件进行 grep。脚本循环遍历每个参数。
有没有办法在单个搜索字符串中收集参数并使用 OR 进行 grep ?我想这样做是为了提高速度,希望一次搜索所有内容会使我的脚本更快。欣赏任何想法。
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)
如果这些foo
,bar
,baz
旨在为字符串,而不是基本的正则表达式中,添加-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
)