Zeilenmanipulation / Multiplakation von Werten

A

aragon19

Grünschnabel
Hallo verehrte Forennutzer,

ich habe eine bescheidene Frage.
Ich brauche ein Bashskript, was die Zahl "A" einer Zeile mit einer Zahl multipliziert und das Ergebnis dann an die Stelle von "A" schreibt. ( Der Wert A soll dann natürlich gelöscht werden.)
Hier mal ein Beispiel einer solchen "Tabelle". Nur die Zahlen in der ersten Spalte sollen mit einen festem Wert multipliziert werden.
Code:
1.0000000e+00   1.0000000e+00   2.1949984e+00   2.1216589e+00   
2.0000000e+00   7.1934859e-01   9.3805698e+00   9.4876419e+00   
3.0000000e+00   2.8744944e-01   2.7351631e+00   4.8803927e+00   
4.0000000e+00   4.3132466e-01   1.1612711e+00   6.6270389e-01   
5.0000000e+00   3.2631292e-01   2.0573666e+00   -5.1671440e-01  
6.0000000e+00   1.5728502e-01   1.2967187e+00   -1.0925676e+00  
7.0000000e+00   1.4414911e-01   -1.2910542e-01  -1.0367795e+00  
8.0000000e+00   1.2971904e-01   -4.9360046e-01  -1.4690839e-01  
9.0000000e+00   1.3870648e-01   1.1012473e-01   6.2829191e-01   
1.0000000e+01   1.2075486e-01   2.4551679e-01   8.3717197e-01   
1.1000000e+01   1.0060756e-01   2.2044854e-02   7.9817835e-01   
1.2000000e+01   9.9143770e-02   6.7971315e-01   6.5242127e-01   
1.3000000e+01   9.0881269e-02   1.9830221e+00   4.1576464e-01   
1.4000000e+01   8.2812748e-02   2.7467096e+00   3.2023161e-01   
1.5000000e+01   6.9269126e-02   2.6116638e+00   4.1437036e-01   
1.6000000e+01   5.9284937e-02   1.9231803e+00   4.4326913e-01   
1.7000000e+01   6.3631247e-02   1.0813200e+00   3.3593067e-01   
1.8000000e+01   5.5887831e-02   4.0003303e-01   2.6425370e-01   
1.9000000e+01   4.4583014e-02   1.3557151e-01   2.8709725e-01   
2.0000000e+01   3.8380228e-02   4.1127208e-01   3.3576987e-01   
2.1000000e+01   3.7949616e-02   1.0983060e+00   4.0004697e-01   
2.2000000e+01   3.4020984e-02   1.8360034e+00   4.9248720e-01   
2.3000000e+01   3.2907190e-02   2.2707506e+00   5.5157468e-01   
2.4000000e+01   2.9864798e-02   2.2734986e+00   5.1475729e-01   
2.5000000e+01   2.8749736e-02   1.9368628e+00   4.1853607e-01   
2.6000000e+01   2.5442627e-02   1.4688725e+00   3.5028130e-01   
2.7000000e+01   2.2188402e-02   1.1143477e+00   3.4021947e-01   
2.8000000e+01   2.0509861e-02   1.0426929e+00   3.5491739e-01

Habe schon bezüglich sed nachgedacht, aber verändert ja nur ganze Zeilen. Mir reicht es ja aus, wenn nur der vordere Teil der Zeile manipuliert wird.
Außerdem hatte ich da früher mal Probleme, weil die "Substrings" von sed nicht als Zahlen anerkannt wurden.

Hat einer von euch einen Hinweis bzw. Idee.

Gruß
Aragorn
 
klingt nach cut, ein bisserl Mathe (z.b. bc) und sed, das alles versteckt in einer Schleife...
 
Ich würd' das wohl mal mit awk probieren:
Code:
awk '{ $1 = sprintf("%.8e", $1 * 2); print $0; }'
oder so, um z.B. mal die erste Spalte mit 2 zu multiplizieren ...

Gruss
 
Ich danke erstmal für die Antworten und kann die Aufgabe aber vereinfachen. Die erste Zahl kann stehen bleiben und ich hänge das Ergebnis in die neue 5. Spalte. Das würde auch reichen.
Ich werde das gleich mal ausprobieren.
 

Ähnliche Themen

CSV Datei mit sed manipulieren/optimieren/ergänzen

bash: Fehlermeldung und Werte in Array sortieren?

Werte einer Datei in Feldern einer anderen suchen

Zurück
Oben