Hallo Bernd, Bernd Brodesser wrote:
habe ich jetzt was nicht verstanden, oder ist das ein Bug?
$ echo "hallo du da huhu du auch" | awk 'BEGIN {OFS="#"} //' hallo du da huhu du auch
Wieso werden in der Ausgabe zwichen den einzelnen Felder kein # gesetzt? Ich habe doch ausdrücklich OFS="#" gesagt. Auch wenn ich es mit -v OFS='#' mache, kommt das Gleiche. Auch was anderes als # bringt es nicht. Es bleibt das Leerzeichen als Feldtrenner. Auch print oder was weiß ich, es bleibt immer das Leerzeichen als Feldtrenner.
IMHO passiert das, weil Du mit diesem Skript immer $0 ausgibst, was für die Original Eingabezeile steht. Wenn Du OFS benutzen willst, dann mußt du die Felder einzeln ansprechen in der Art: print $1, $2, $3. Dann wird auch der Wert von OFS als Feldtrenner benutzt.
Nein, printf ist keine Lösung. Ich weiß nicht immer wie groß NF ist und auserdem würde mein Skript sehr unübersichtlich, wenn ich jede Ausgabe mit printf machen müßte.
Sorry, aber was einfaches fällt mir hier auch nicht ein. Aber wenn Du z.B. immer Space als Feldtrenner hast, dann geht ein: $ echo "hallo du da huhu du auch" | awk '{gsub(OFS,"#"); print}' Andreas --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com
participants (1)
-
Andreas.Kyek@arcor.net