输出awk'{print $ 4}'是
b05808aa-c6ad-4d30-a334-198ff5726f7c
59996d37-9008-4b3b-ab22-340955cb6019
2b41f358-ff6d-418c-a0d3-ac7151c03b78
7ac4995c-ff2c-4717-a2ac-e6870a5670f0
我需要通过这些记录grep文件st.log。像awk '{print $4}' |xargs -i grep -w "pattern from awk" st.log
之类的东西我不知道如何正确传递模式?
答案 0 :(得分:0)
怎么样?
awk '{print $4}' | grep -F -f - st.log
Eric Renouf的信用,注意到-f -
可以用于标准输入,而不是-f <(cat)
,注意:-f /dev/stdin
也可以使用并避免启动新流程。
或接近提问输出
awk '{print $4}' | xargs -i grep -F {} st.log
可能-w
不是OP所需的选项,但是-F
grep --help
-F, --fixed-strings PATTERN is a set of newline-separated strings
-w, --word-regexp force PATTERN to match only whole words
-w
将仅匹配包含完全模式
实施例
grep -w . <<<a # matches
grep -w . <<<ab # doesn't match
grep -F . <<<a # doesn't match
grep -F . <<<a.b # matches
答案 1 :(得分:-2)
这些内容可能会有所帮助
How to process each line received as a result of grep command
awk '{print $4} | while read -r line; do
grep $line st.log
done