[wuplug] Fragen zu awk
R.Ellert
reinhard.ellert at wuplug.org
Son Mai 3 19:18:48 CEST 2009
Hallo Bram,
leider faengt es gleich bei uns an zu regen, trotzdem viele Gruesse ins
Hessenland.
Es klappt, jetzt muss ich es nur noch verstehen.
Ein paar Erlaeuterungen waeren sehr hilfreich.
Soweit ich das verstanden habe, awk betrachtet den Eingabestrom als eine
Sammlung von Datensaetzen, die in Felder aufgeteilt werden koennen
Die Aktion, die mit BEGIN verknuepft ist, wird nur einmal ausgefuehrt und hier
verliessen sie mich ...
BEGIN- und END-Muster koennen in beliebeiger Reihenfolge irgendwo im awk
auftauchen
Auf die Gesamtzahl der Eingabe-Zeilen komme ich
awk 'END { print NR }'
Wobei NR die Zeilennummer ist, aber wie komme ich auf die Zeile davor?
und
nach einem Durchlauf mit anschliessender Ausgabe:
Der Feldinhalt $5 wird richtig angezeigt, aber ein Abfrage
:~$ echo $_IST
ergibt keinen Wert
Hanegt das vom Typ der Variablen ab?
cya, Reinhard
Am Sunday 03 May 2009 12:43:58 schrieb Bram Bolder:
> Hmmm, irgendwie wurde meine letzte Mail verstümmelt. Mal schauen, ob's
> jetzt klappt.
>
>
> Hallo Reinhard,
>
> R.Ellert wrote:
> > Hallo WupLUGger,
> >
> > Gegeben:
> > awk
> > Eine Textdatei mit einer unbekannten Anzahl von Zeilen
> > Z.B. Inhalt von Feld 5: +12
> > Trennzeichen: Whitespace-Zeichen
> >
> > Gesucht:
> > Feld 5 der vorletzten Zeile
> >
> > Ausgabe einmal auf dem Bildschirm und
> > einmal den Wert der Variablen _IST zuweisen
> > Ziel:
> > Das Feld 5 soll mit der Variablen _SOLL verglichen werden
>
> awk 'BEGIN{neu5=""}{alt5=neu5;neu5=$5;}END{_IST=alt5;print _IST;}'
>
> > Wie werden nicht nichtnumerische Strings in Zahlen umgewandelt?
>
> Keine Ahnung :-(.
>
> Grüße aus dem sonnigen Hessen,
>
> Bram