Hallo daar,
Hier is (een deel) van het bestand dat ik wil veranderen. Let op de drie ruimtes voor de "3" (zou kunnen worden "2" of "0" ook).
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
Ik ben op zoek naar enkele ID (bijv. 621530) en verander de waarde daarna.
Ik gebruik dit script:
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
Het probleem is dat daardoor de drie ruimtes in de voorkant van de rij als er iets verandert in de rij ... het verwijderen van de commentaar regel lost het probleem.
Maar ik weet niet hoe te houden hetzelfde aantal spaties tussen de rijen: 2 ruimten tussen de ID en de volgende waarde, en 1 ruimte tussen een waarde en de ID na dat (de bovenstaande script draait alles in een enkele ruimte).
Kan iemand mij helpen?