awk是否可以在与子字符串“ eq”匹配的列之后打印三列?
我有以下文件变量和值
number1 name eq a 1 2 3 4 5 eq b 1 2 3 4 eq c 1 2 3 4 5
number2 name eq a 1 2 3 4 5 eq b 1 2 3 4
number3 name eq a 1 2 3 4 5 eq b 1 2 3 4 eq c 1 2 3 4 5
number4 name eq a 1 2 3 4 5
number5 name eq a 1 2 3 4 5 eq b 1 2 3 4 eq c 1 2 3 4 5
....
如果awk在某一列中找到子字符串“ eq”(请说$n
),则打印$1
和$2
,并在找到“ eq”之后打印三列({{1 }},$(n+1)
和$(n+2)
)。
预期输出:
$(n+3)
答案 0 :(得分:0)
您可以尝试以下操作:
awk '{for(i=3;i<=NF;++i) if ($i == "eq") print $1,$2,$(i+1),$(i+2),$(i+3),$(i+4)}' file