grep可执行文件输出中的多行shell变量

relj7zay  于 2022-12-19  发布在  Shell
关注(0)|答案(2)|浏览(133)

我尝试使用多行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多行变量?

y0u0uwnf

y0u0uwnf1#

$ cat file
blahblah aaa
blahblah bbb
blabhblasd ccc
----------- ddd
...

blah blah  ggg
$ echo "$var"
aaa
bbb
ggg
$ cat file | awk -v var="$var" 'BEGIN{split(var,tmp); for (i in tmp) arr[tmp[i]]} $NF in arr'
blahblah aaa
blahblah bbb
blah blah  ggg

cat file替换为run

ep6jt1vc

ep6jt1vc2#

这是你想要的吗?

run | grep -f <(printf '%s\n' "$var")

相关问题