Re: awk
On Tuesday 14 November 2006 08:08, Rüdiger Noack wrote:
> Hans-Georg Bork schrieb:
> >> holbe@darkside:/home/holbe% echo -n "" | awk 'END { print "Ha!" }'
> >
> > hgb@sokrates:~$ echo -n "" | awk '{ print "Ha!" }'
> > hgb@sokrates:~$
> >
> > ... und warum geht dies dann nicht, bzw. liefert nix?
>
> Weil ich das jetzt gelernt habe, die Antwort von mir: :-)
>
> erno@flinker:~$ echo -n "" | awk '{ print "Ha!" }'
> erno@flinker:~$ echo -n "" | awk 'END { print "Ha!" }'
> Ha!
>
Das war aber nicht die Frage (das weiß er doch schon)
Er will das warum wissen, also wieso man mit END den String hinter print
kriegt und ohne END nicht.
Ich weiß nur soviel: es gibt in awk 3 Möglichkeiten:
1.) BEGIN - wird ausgeführt, bevor Input gelesen wird
echo -n "" | awk ' BEGIN { print "Ha!" }'
Ha!
2.) Input loop - wird für jede Zeile input ausgeführt
echo "" | awk '{ print "Ha!" }'
Ha!
3.) END - wird ausgeführt, nachdem der input gelesen wurde
Beispiel wie oben
Was ich nicht ganz raffe, ist, wieso -n =trailing newline-Unterdrückung
awk nicht mehr den String hinter print lesen lässt (also letztlich das
gleiche wie Hans-Georg ;-)
--
You will outgrow your usefulness.
Reply to:
- Follow-Ups:
- Re: awk
- From: Rüdiger Noack <ernohl@yahoo.de>
- Re: awk
- From: Jörg Sommer <joerg@alea.gnuu.de>
- References:
- awk
- From: Rüdiger Noack <ernohl@yahoo.de>
- Re: awk
- From: Hans-Georg Bork <hgb@hgbhome.net>
- Re: awk
- From: Rüdiger Noack <ernohl@yahoo.de>