awk csv

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

awk csv

Beitrag von xcomm » 03.08.2007 00:01:15

Hi Gemeinde,

vielleicht kann mir jemand dabei helfen ;-)

Ich habe einen csv-File (aus xls mit sed schon gut bereinigt) den ich auf der Bash in Variablen zerlegen möchte um sie in MySQL einzufügen:

Code: Alles auswählen

...
Fledermaus, Mausohr 39 122
Amsel 18 34
...
Das Problem ist nun den variablen Text vor der Zahl auszuschneiden habe, um ihn in eine Bash-Variable zu packen.
Leider überfordert mich das mit awk noch etwas.

Danke, xcomm

Benutzeravatar
C_A
Beiträge: 1082
Registriert: 22.04.2004 14:51:01
Lizenz eigener Beiträge: GNU General Public License

Beitrag von C_A » 03.08.2007 00:21:21

Um hier eine genaue Antwort geben zu koennen muesstest du sagen nach welchen Kriterien man den Text vor den Zahlen raus fischen soll bzw. wie allgemein die Zeilen aussehen.
Wenn gesuchten Felder immer alle Felder einer Zeile bis auf die letzten zwei sind so kannst du NF-2 als Anhaltspunkt nehmen. (NF gibt dir die Anzahl der Felder wieder).

Beispiel:

Code: Alles auswählen

cat testfile
bla a za tra 2 44
ad a 445 3
ad 995 137
ddf lir 80 22

$ awk '{ for(i=1;i<NF-1;i++)
{ printf $i;printf " "} }
{ printf "\n" }' testfile
bla a za tra
ad a
ad
ddf lir

Benutzeravatar
muppets
Beiträge: 142
Registriert: 31.08.2004 21:13:53
Wohnort: Dortmund

Re: awk csv

Beitrag von muppets » 03.08.2007 12:45:25

xcomm hat geschrieben: Ich habe einen csv-File (aus xls mit sed schon gut bereinigt) den ich auf der Bash in Variablen zerlegen möchte um sie in MySQL einzufügen:

Code: Alles auswählen

...
Fledermaus, Mausohr 39 122
Amsel 18 34
...
Hast Du die Feldtrenner mit sed 'bereinigt'? Denn so sieht Dein Beispiel nicht mehr so richtig nach csv aus. Ich habe jetzt zwar keine Lösung parat, aber mit den Feldtrennern würde man sich mit awk sicher auch leichter tun.

Benutzeravatar
xcomm
Beiträge: 804
Registriert: 21.09.2003 05:12:01
Wohnort: Europe
Kontaktdaten:

Beitrag von xcomm » 03.08.2007 13:09:18

Hi C_A, hi muppets,

vielen Dank für Eure antworten!
Wenn gesuchten Felder immer alle Felder einer Zeile bis auf die letzten zwei sind so kannst du NF-2 als Anhaltspunkt nehmen. (NF gibt dir die Anzahl der Felder wieder).
Genau so ist es - danke für den Hinweis!

Regards, xcomm

Antworten