leia a 9ª coluna do arquivo de texto e substitua a 11ª coluna pelo mesmo arquivo

0

Eu quero ler a 9ª coluna do arquivo de texto com o delimitador '~' e preciso recuperar os dados para a 11ª coluna correspondente que reside em uma tabela. esses dados eu preciso substituir na coluna 11 do arquivo que está tendo valores NULL no momento.

Como conseguir isso em unix.

col1~col2~col3~col4~col5~col6~col7~col8~col9~col10~col11~col12~col13

data1~data2~data3~data4~data5~data6~data7~data8~data9~data10~~data12~data13

nos dados data11 é nulo. então eu quero pegar o valor correspondente para data9 e substituir os dados11.

Obrigado

    
por Lakshminarayana Reddy 13.11.2018 / 14:19

2 respostas

1

Se você quiser copiar apenas a coluna 9 para a coluna 11, isso pode ser feito com um script como este:

awk 'BEGIN {FS="~"; OFS="~"}{$11=$9; print}' <filename>

Se o primeiro arquivo tiver apenas uma linha, você poderá fazer algo como:

awk -v val=$(awk -F\~ '{print $9}' <filename b>) 'BEGIN {FS="~"; OFS="~"}{$11=val; print}' <filename a>
    
por 13.11.2018 / 14:24
1

Não tenho certeza se entendi completamente. Isso chegaria perto?

awk -F~ '!$11 {$11 = $9}1' OFS="~" file
col1~col2~col3~col4~col5~col6~col7~col8~col9~col10~col11~col12~col13
data1~data2~data3~data4~data5~data6~data7~data8~data9~data10~data9~data12~data13
    
por 13.11.2018 / 15:08