Tenho um problema com o awk e preciso da sua ajuda. Só preciso executar grep na segunda coluna e, se houver correspondência, trocar a segunda coluna pela primeira.
172.21.154.40 172.21.254.25
172.21.250.94 172.21.154.37
172.21.250.93 172.21.254.24
Meu awk
roteiro:
awk '$2 == "172.21.154.37"' $outputfile
então troque 172.21.250.94
com172.21.154.37
Alguém pode ajudar? Obrigado.
Isso
awk
pode ser feito desta forma:Uma ideia onde redefinimos
$0
se encontramos uma correspondência:NOTAS:
1
éawk's
equivalente a 'true' e basicamente diz para imprimir a linha atual (o que neste caso significa que imprimimos todas as linhas)OFS
padrão é um espaço; se o delimitador de entrada for algo diferente de um espaço (por exemplo, 3 espaços) e você deseja manter o espaçamento de entrada, poderíamos adicionar mais algum código, mas neste ponto o espaço único parece ser suficiente para corresponder à sua entrada de amostraVamos nos BEIJAR !
Isto é o mesmo que:
Em pseudocódigo :