Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
-
xcomm
- Beiträge: 804
- Registriert: 21.09.2003 05:12:01
- Wohnort: Europe
-
Kontaktdaten:
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:
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
-
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
-
muppets
- Beiträge: 142
- Registriert: 31.08.2004 21:13:53
- Wohnort: Dortmund
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:
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.
-
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