我经常发现自己经常做这样的事情:
something | grep cat | grep bat | grep rat
当我记得这三个词一定是在某个地方以某种顺序出现在something
...的输出中时,我可以做这样的事情:
something | grep '.*cat.*bat.*rat.*'
但这意味着排序(蝙蝠出现在猫之后)。因此,我正在考虑在我的环境中添加一个 bash 函数,称为mgrep
:
mgrep cat bat rat
进入
grep cat | grep bat | grep rat
但我不太确定该怎么做(或者是否有替代方案?)。一种想法是对参数进行循环,如下所示:
while (($#)); do
grep $1 some_thing > some_thing
shift
done
cat some_thing
其中 some_thing 可能是一些 fifo,就像>(cmd)
在 bash 中那样,但我不确定。一个人将如何进行?