Hallo Liste,
ich spiele gerade etwas mit gawk herum und komme nicht weiter. Könnt ihr mir sagen, wass ich verändern muss, damit alle Ausgaben der print Befehle in einer Zeile landen. In den Hilfedateien habe ich bis jetzt leider nichts gefunden.
Meine bisherigen Versuche sehen so aus:
gawk '{FS=";"; OFS=";"; {print$3,$2,$1}; {for (i=4; i<=7; i++) print$i}}' test.dat
Der Ergebnis sieht für einen Datensatz wie folgt aus:
Name; Vorname; Titel Straße Wohnort
angestrebt habe ich jedoch:
Name; Vorname; Titel; Straße; Wohnort
Vielen Dank im vorraus für eure Anregungen.
ciao, Jens
--
Open Minds. Open Sources. Open Future.
Hallo Jens,
Du kannst es mit printf() versuchen. Damit sollte die gewuenschte Ausgabe entstehen. Nach dem letzten printf()-Befehl wird dann ein Zeilenumbruch eingefuegt. Mit dieser Methode benoetigst Du auch keinen OFS (output field separator). In einer Datei gespeichert wuerde meine Loesung so aussehen:
BEGIN { FS=";"; }
{ printf("%s;%s;%s", $3, $2, $1); for (i=4; i<=7; i++) { printf(";%s",$i); } printf("\n"); }
... und waere mit
$ gawk -f dateiname eingabedatei > ausgabedatei
aufrufbar. Ich habe Deine sieben Felder in der selben Reihenfolge angeordnet, wie Du es mit print gemacht hattest.
HTH, Stefan
.
lug-dd@mailman.schlittermann.de