分隔 xargs 的 grep 输出

delimit grep output from xargs

有没有办法用 xargs 的每个 arg 来分隔 运行ning grep 的输出? 我正在尝试 运行 这个:

echo 'pattern1\npattern2' | xargs -I{} grep -r '{}' *

对于上下文,我正在尝试测试目录中每个模式的存在;像这样:

#pattern exit_status
pattern1 0
pattern2 1 

我并不完全需要分隔符,但想要一个分隔符,因为它可以让我按模式计数。如果有更好的方法来做到这一点,我也会对此持开放态度!

你可以运行像这样:

printf '%s\n' pattern1 pattern2 | xargs -I{} sh -c 'grep -rq ""; echo " $?"' sh {}

这将 echo 每个模式及其递归 grep 命令的退出状态。