我很难找到一个单行程序来搜索文件中的模式,从匹配的行中获取一个字段,然后再次使用该字段作为模式搜索同一个文件,以获取一个不同的领域。你可以说数据看起来像这样:
CONNECT=desired_output CONNECTION=pattern2
SEARCH=pattern1 CONNECTION=pattern2
到目前为止,我尝试过这些不圣洁的混乱无济于事:
zgrep -i pattern1 file | awk '{print $8}' | xargs -I % zgrep % file | zgrep pattern2
zgrep -i pattern1 file | awk '{print $8}' | zgrep -f - file
如果我放弃最后一个grep,它会给出结果(需要另一个grep和awk来获得所需的输出字段)。如果我包含最后一个grep,它将永远不会返回输出。
类似的问题似乎表明awk能够完成这个概念,但我无法解释给出的示例以适应我的用例。
答案 0 :(得分:0)
听起来你想要这样的东西,未经测试,因为你没有提供可测试的输入/输出:
awk '
NR==FNR {
if ( /constant_regexp1/ ) {
dynamic_regexp2 = $8
}
next
}
$0 ~ dynamic_regexp2
' file file
永远不要使用" pattern"顺便说一句,因为它不明确,总是使用"字符串"或者" regexp",无论你是什么意思。