Hallo Leute,
ich habe folgendes festgestellt und kann mir keinen Reim drauf machen. Basis ist ein ASCII-File in folgendem Format:
Mit folgendem AWK-Script wird der Wert der Zahl in den 4. Spalte um 0.1 reduziert und die Ausgabe im File pshell_mod.txt ausgegeben. Der originale Wert wird im File pshell_org.txt ausgegeben.
In Suse8.0 ergibt sich für pshell_mod.txt folgendes Resultat:
In Suse 10.2 sieht das Ergebnis aber anders aus:
Hier wird offensichtlich nicht der Wert der Zahl gelesen, sondern nur die ganze Zahl vorm Komma und davon dann die 0.1 abgezogen.
Kann mir vielleicht jemand einen Hinweis geben, woran das liegen kann?
Gibt es eine Versionsnummer von AWK, die ich überprüfen kann?
Die man-Pages und Google waren mir leider nicht sehr hilfreich.
Vielen Dank schonmal für Eure Mühe.
Gruß
ich habe folgendes festgestellt und kann mir keinen Reim drauf machen. Basis ist ein ASCII-File in folgendem Format:
Code:
PSHELL 1122304 51 1.30000 51 1.00000 51 0.83333
$LTR UT RE
PSHELL 1122305 51 1.15000 51 1.00000 51 0.83333
$GEW LI
PSHELL 1211101 18 3.00000 18 1.00000 18 0.83333
$GEW RE
PSHELL 1221101 18 3.00000 18 1.00000 18 0.83333
$QTR UEBER HI
PSHELL 1221600 14 2.60000 14 1.00000 14 0.83333
$QTR UEBER HI
Mit folgendem AWK-Script wird der Wert der Zahl in den 4. Spalte um 0.1 reduziert und die Ausgabe im File pshell_mod.txt ausgegeben. Der originale Wert wird im File pshell_org.txt ausgegeben.
Code:
awk '{
if(index($1,"$")!=0){komment= $0}
if(index($1,"PSHELL")!=0){
th=substr($0,25,8)
tneu=sprintf("%8.5f",th-0.1)
print komment > "pshell_mod.txt"
print substr($0,1,24) tneu substr($0,33,32) > "pshell_mod.txt"
print komment > "pshell_org.txt"
print substr($0,1,64) > "pshell_org.txt"
}
}' $1
In Suse8.0 ergibt sich für pshell_mod.txt folgendes Resultat:
Code:
PSHELL 1122304 51 1.20000 51 1.00000 51 0.83333
$LTR UT RE
PSHELL 1122305 51 1.05000 51 1.00000 51 0.83333
$GEW LI
PSHELL 1211101 18 2.90000 18 1.00000 18 0.83333
$GEW RE
PSHELL 1221101 18 2.90000 18 1.00000 18 0.83333
$QTR UEBER HI
PSHELL 1221600 14 2.50000 14 1.00000 14 0.83333
$QTR UEBER HI
In Suse 10.2 sieht das Ergebnis aber anders aus:
Code:
PSHELL 1122304 51 0.90000 51 1.00000 51 0.83333
$LTR UT RE
PSHELL 1122305 51 0.90000 51 1.00000 51 0.83333
$GEW LI
PSHELL 1211101 18 2.90000 18 1.00000 18 0.83333
$GEW RE
PSHELL 1221101 18 2.90000 18 1.00000 18 0.83333
$QTR UEBER HI
PSHELL 1221600 14 1.90000 14 1.00000 14 0.83333
$QTR UEBER HI
Hier wird offensichtlich nicht der Wert der Zahl gelesen, sondern nur die ganze Zahl vorm Komma und davon dann die 0.1 abgezogen.
Kann mir vielleicht jemand einen Hinweis geben, woran das liegen kann?
Gibt es eine Versionsnummer von AWK, die ich überprüfen kann?
Die man-Pages und Google waren mir leider nicht sehr hilfreich.
Vielen Dank schonmal für Eure Mühe.
Gruß