Substituir elementos da tabela de arquivos de texto pelo awk

0

Eu tenho alguns dados em uma tabela de texto:

Number        Column1        Column2
  1             abc            zxy
  7             tgh            lkj
  1             rfe            zpo

Eu quero substituir a string na posição de lkj (sempre na terceira coluna e na linha 3). Não substituindo arbitrariamente lkj. Pensando em outro exemplo:

    Number        Column1        Column2
  a             875            172
  a             457            357
  2             986            125

Gostaria de extrair o 357 neste caso. 3a coluna 3a linha. Eu estava tentando algo envolvendo awk com um parâmetro $3 para a coluna, mas não sei mais o que fazer. Alguma sugestão?

    
por Joshua Salazar 20.09.2017 / 05:18

1 resposta

1

Se você quiser preservar o alinhamento do poço, use awk com a função sub .

awk 'NR==3{sub($3, "string_to_replace")}1' infile.txt

else, você pode usar abaixo

awk 'NR==3{$3="string_to_replace"}1' infile.txt

NR==3 significa fazer a substituição se estiver na linha 3 rd , 1 é sempre uma condição verdadeira e informando awk imprimir a linha (ou essa é a ação padrão awk )

    
por 20.09.2017 / 05:25