Hei,
Her er (en del) av fil jeg ønsker å endre. Merk de tre mellomrom før "3" (kan være "2" eller "0" også).
Code:
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
Jeg ønsker å finne noen ID (eg. 621530) og endre verdien følge den.
Jeg bruker dette skriptet:
Code:
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
Problemet er at det fjerner tre plasser foran rekka hvis den endres noe i raden ... fjerner kommentert linje løser problemet.
Men jeg vet ikke hvordan jeg skal beholde samme antall mellomrom mellom radene: 2 mellomrom mellom ID og følgende verdi, og 1 plass mellom en verdi og ID etter at (skriptet ovenfor slår alt i én plass).
Kan noen hjelpe meg?