Olá,
Aqui está (uma parte) do arquivo que quero mudar. Nota: os três espaços antes do "3" (poderia ser "2" ou "0" também).
Código:
3 621530 1.1935E-02 631530 1.1293E+01 641530 1.1117E-02 571540 4.4419E-14
3 581540 2.6670E-10 591540 3.8610E-09 601540 1.1016E-06 611540 3.2618E-06
3 611541 6.5572E-07 621540 9.8307E+00 631540 3.1177E+00 641540 1.4615E+00
3 571550 0.0000E+00 581550 8.8139E-12 591550 1.0739E-09 601550 2.5639E-07
3 611550 1.1011E-06 621550 3.6787E-05 631550 3.4821E+00 641550 3.1855E+00
3 641551 0.0000E+00 581560 9.4585E-13 591560 7.5358E-11 601560 1.2023E-07
3 611560 1.7968E-07 621560 5.4237E-04 631560 3.0054E-02 641560 6.5687E+00
3 581570 2.3926E-14 591570 9.9322E-12 601570 4.3929E-09 611570 4.6793E-07
3 621570 5.5911E-06 631570 6.3564E-04 641570 3.2355E+00 591580 2.8608E-13
Quero encontrar algumas ID (ex.: 621530) e altere o valor que se lhe segue.
Eu estou usando esse script:
Código:
VALUE=".........."
awk -v var="$VALUE" 'BEGIN{}
NR==FNR{a[$0]=$0; next}
{for(i=2;i<9;i+=2)if($i in a){$(i+1)=var}}
#{$1=" "$1}
{print}' ID_to_be_changed my_file
O problema é que ele remove as três espaços na frente da fila, se muda alguma coisa na linha ... removendo a linha comentou resolve o problema.
Porém não sei como manter o mesmo número de espaços entre as linhas: 2 espaços entre o ID e os seguintes valores, e 1 espaço entre um valor e depois que o ID (o script acima transforma tudo em um único espaço).
Alguém pode me ajudar?