我尝试使用多行shell变量从执行输出中grep行,但我不太确定如何执行。例如,如果我执行一个名为 run 的文件,结果是:
blahblah aaa
blahblah bbb
blabhblasd ccc
----------- ddd
...
blah blah ggg
然后,我有一个shell变量,它是grep的另一个结果(并且是多行的),例如$VAR
aaa
bbb
ggg
我想从 run 的结果中对这个$VAR执行grep,所以我得到了结果
blahblah aaa
blahblah bbb
blah blah ggg
我试过
运行|grep“VAR”,但是我没有得到我想要的结果。有没有办法从执行输出中grep多行变量?
2条答案
按热度按时间y0u0uwnf1#
将
cat file
替换为run
。ep6jt1vc2#
这是你想要的吗?
run
输出中与$var
变量中的任何行匹配的任何行。<(printf '%s\n' "$var")
的说明,请参阅Bash Reference Manual中的进程替换。printf
而不是echo
来输出$var
的内容。$var
而不是$VAR
。