Ich möchte eine bestimmte Spalte (in diesem Fall Spalte 7) meiner Datei in wissenschaftlicher Notation drucken, während der Rest der Spalten gedruckt wird, wie es ist. Wie kann ich printf
selektiv nur für Spalte 7 und nur print
für die ersten 6 Spalten verwenden?awk printf eine bestimmte Spalte in einer Datei
Beispiel Eingabe:
C 6 12.011 0.51 3.56E-01 4.60E-01 0.458399
CA 6 12.011 -0.15 3.55E-01 2.93E-01 0.291708
CAI 6 12.011 -0.25 3.55E-01 3.05E-01 0.30421
CC 6 12.011 0.62 3.56E-01 2.93E-01 0.291708
gewünschte Ausgabe:
C 6 12.011 0.51 3.56E-01 4.60E-01 4.58E-01
CA 6 12.011 -0.15 3.55E-01 2.93E-01 2.92E-01
CAI 6 12.011 -0.25 3.55E-01 3.05E-01 3.04E-01
CC 6 12.011 0.62 3.56E-01 2.93E-01 2.92E-01
Sind Ihre Spalten mit fester Breite? Ist es immer die letzte Spalte, die Sie ändern möchten? –
awk '{print $ 1, $ 2, $ 3, $ 4, $ 5, $ 6}' input.txt> temp1 awk '{printf "% 4.3e" $ 7}' input.txt> temp2 Ich erhalte Fehler: awk: (FILE-NAME = input.txt FNR = 1) fatal: nicht genügend Argumente Format-String zu erfüllen \t '% 4.3e0.458399' ich dachte, ich Paste wird temp1 temp2> output.txt Allerdings werde ich es vorziehen, wenn ich tun könnte, all dies in einem Schritt/Befehl – ruchi
Nein, es ist nicht immer die letzte Spalte, die ich in wissenschaftliche Notation ändern muss. – ruchi