Como alterar a primeira coluna de dados em um arquivo?

0

Eu tenho o arquivo .data contendo uma tabela de números com o formato de coluna:

m   x    y    z    vx    vy    vz

separados por tabulações, com uma profundidade de 2000. O nome do arquivo é initc.data .

Eu quero alterar o valor da primeira coluna inteira do arquivo.

Eu tentei usar os seguintes comandos:

awk -F '$1 == 0.05' initc

e

awk -F '{print $1, "0.05"}' initc

para abrir o arquivo e atribuir à primeira coluna o valor 0.05 . Ambos abrem awk , mas não executam ou produzem saída.

Um exemplo dos dados em questão é:

0.500000  0.500000  0.500000  0.500000  -1.500000  -1.500000  -1.500000
0.500000  0.567564  0.543674  0.536446  -1.500000  -1.500000  -1.500000
0.500000  0.454538  0.492286  0.501853  -1.500000  -1.500000  -1.500000
0.500000  0.574283  0.367439  0.668929  -1.500000  -1.500000  -1.500000

A documentação é nebulosa para um iniciante. A questão mais próxima relacionada que pude encontrar foi esta: Dados relacionados em um arquivo .

    
por Harry Smith 09.02.2016 / 19:01

2 respostas

1

awk não tem a capacidade de fazer substituições no local, como as versões mais recentes de sed . Então, você precisa direcionar a saída para um arquivo diferente e recuperá-lo deste arquivo recém-criado, como visto abaixo:

awk '{$1="0.05"; print $0}' initc > initc.new && cat initc.new > initc
    
por 09.02.2016 / 19:24
0

questão interessante - você pode definir uma variável e, em seguida, usar o corte para analisar os dados e preceder a saída com o conteúdo da sua variável - via awk. (talvez existem builtins para fazer isso .. embora o acima funcione).

x=$target
cat $file | cut -d" " -f2- | awk '{print info,$0 }' info=$target
    
por 09.02.2016 / 19:58