awk -vx="$x" '$1 == x {print $3, $4} $3 == x {print $1, $2}'
@don_crissti Isso parece fazer o trabalho muito bem.
Eu tenho arquivo de entrada
ABC 123 DEF 456
ZYX 098 WVU 765
PQR 111 RST 333
Agora estou tentando exibir a 3ª e a 4ª coluna se o padrão corresponder à coluna 1 e exibir a primeira e a segunda coluna se o padrão corresponder na terceira coluna.
awk '{{for(i=1;i<=NF;i++)if($i == "ABC") printf $(i+2)" "$(i+3)" "} print ""; }'
Isso faz o trabalho, mas a entrada será uma variável como em, portanto, não sei se corresponderá à coluna 1 ou coluna 3.
x=ABC or x=DEF
awk -v x="$x" '{{for(i=1;i<=NF;i++)if($i==x) printf $(i+2)" "$(i+3)" "} print ""; }'
(Dependendo do valor de entrada de x, então, se eu puder comparar o Field no, ele deve fazer o trabalho)
Saída esperada se x = ABC
DEF 456
se x = DEF
ABC 123
E assim por diante para cada linha ....
Tags awk