Zeilenmanipulation / Multiplakation von Werten

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von aragon19, 11.01.2011.

  1. #1 aragon19, 11.01.2011
    aragon19

    aragon19 Grünschnabel

    Dabei seit:
    21.01.2010
    Beiträge:
    9
    Zustimmungen:
    0
    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
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    klingt nach cut, ein bisserl Mathe (z.b. bc) und sed, das alles versteckt in einer Schleife...
     
  4. #3 floyd62, 11.01.2011
    floyd62

    floyd62 Routinier

    Dabei seit:
    01.05.2007
    Beiträge:
    309
    Zustimmungen:
    0
    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
     
  5. #4 aragon19, 11.01.2011
    aragon19

    aragon19 Grünschnabel

    Dabei seit:
    21.01.2010
    Beiträge:
    9
    Zustimmungen:
    0
    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.
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Zeilenmanipulation / Multiplakation von Werten