【发布时间】:2017-11-15 05:16:27
【问题描述】:
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 我不知道如何正确传递模式?
【问题讨论】:
-
为什么不能只使用 awk?
-
st.log的结构是什么?一些有代表性的样本行会有所帮助。如果 GUID 始终位于特定字段中,那么 awk 脚本可能会更高效。 -
edit 你的问题包括minimal reproducible example 简洁、可测试的样本输入和预期输出,所以我们不会猜测你在寻求帮助。现在我们甚至不知道您是否在
st.log上运行 awk 命令,与您的 grep 命令相同,或者其他对潜在解决方案有很大影响的东西。我们也不知道您的文件是 Terrabytes 还是 10 行,这也会产生影响。您的问题在书面上非常不清楚,不适合我们帮助您想出一个好的解决方案。 -
把你的过滤器放在
awk,这样一开始就只打印请求的元素。以awk '$4 ~ /^b/ {print $4}为例。