ForumAWK Skript
Anonymus Anonyma – Samstag, 18. August 2007 17:52 Uhr

Hallo!

Ich schreibe gerade an meiner Diplomarbeit und bräuchte eure Hilfe:

Ich möchte aus einer Textdatei verschiedene Werte ausgeben lassen:

{ FS = OFS = “\t”
}
{
print( $1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $15, $21, $23, $24, $25, $26)
}
und anschliessend von einigen nominal skalierten Werten ein Ergebniswert:

{ergebnis = $13 + $16 + $17 + $18 + $20 + $22;
if (ergebnis > 0)
print(” 1 “)
else
print(” 0 “)
}

Leider klappt nur der erste Programmteil..
Kann mir jemand bitte helfen?
Wäre euch sehr dankbar!!!

Viele Grüße
Judith

1 Antwort
Dieter Drewanz – Samstag, 18. August 2007 19:10 Uhr

test1=1
test2=2
let test3=$test1+$test2
echo $test3
ergibt: 3

test1=1
test2=”4″
let test3=$test1+$test2
echo $test3
ergibt: 5

so geht es mit dem addieren;

[1] http://www.jux-net.info/jux2/docs/sys100/comm_30.html

Dieter Drewanz – Sonntag, 19. August 2007 00:16 Uhr

Typen – awk kennt keine echten Variablentypen, es wird nur mit Strings hantiert. Diese werden allerdings als Zahlen aufgefaßt, wenn das im Zusammenhang sinnvoll ist. Soll die Auswertung als Zahl erzwungen werden, so addiert man eine 0.
Ich vermute, daß bei dir die Fallunterscheidung nicht richtig funktioniert. Damit könnte es gehen (Vorherige Antwort betraf die shell).

[1] http://www.clug.de/vortraege/awk/