• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

AWK: Unterschiedliche Ergebnisse in versch. Suseversionen?

Hallo Leute,

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ß
 
Oben