- Registriert
- 11.08.11
- Beiträge
- 522
Ich habe folgende Datendatei ($IN):
Die ersten drei Zeilen enthalten nur jeweils eine Zahl. Danach folgen beliebig viele Zeilen mit drei Spalten.
Die Variable UE enthält die Zahl aus der dritten Zeile. Im Shellscript mache ich zunächst folgendes.
Das ergibt: "Start<TAB><TAB>---<TAB>58,60\n"
Jetzt füge ich die weiteren Zeilen mit den Spalten hinzu, was immer funktioniert, außer bei der Zeile mit der "4" am Anfang. Hier verschwindet ein Stück der Textspalte und die -20,5 werden zu 0,00. Ansonsten ist alles richtig.
So schaut das Ergebnis aus:
Das Problem ist also dort wo "zbc" und "0,00" steht. Sieht jemand den Fehler, ich bin schon total betriebsblind.
2252
56
58,6
4 zbc cb -20,5
5 efg xy -35
5 hi jk lm 500,5
7 nopq -2,1
56
58,6
4 zbc cb -20,5
5 efg xy -35
5 hi jk lm 500,5
7 nopq -2,1
Die ersten drei Zeilen enthalten nur jeweils eine Zahl. Danach folgen beliebig viele Zeilen mit drei Spalten.
- Die erste enthält eine Zahl,
- die zweite etwas Text
- und die dritte wieder ein Zahl. Die Spalten sind per <TAB> getrennt.
Die Variable UE enthält die Zahl aus der dritten Zeile. Im Shellscript mache ich zunächst folgendes.
Code:
echo "" | awk -v ue=$UE ' { printf "Start\t\t---\t%.2f\n", ue } ' > out
Das ergibt: "Start<TAB><TAB>---<TAB>58,60\n"
Jetzt füge ich die weiteren Zeilen mit den Spalten hinzu, was immer funktioniert, außer bei der Zeile mit der "4" am Anfang. Hier verschwindet ein Stück der Textspalte und die -20,5 werden zu 0,00. Ansonsten ist alles richtig.
Code:
tail +4 $IN | awk -v sum=$UE ' FS="\t" { sum+=$3; printf "%.f.\t%s\t%.2f\t%.2f\n", $1, $2, $3, sum } END { printf "Ende\t\t---\t%.2f\n", sum } ' >> out
So schaut das Ergebnis aus:
Code:
Start --- 58,60
4. zbc 0,00 58,60
5. efg xy -35,00 23,60
5. hi jk lm 500,50 524,10
7. nopq -2,10 522,00
Ende --- 522,00
Das Problem ist also dort wo "zbc" und "0,00" steht. Sieht jemand den Fehler, ich bin schon total betriebsblind.