Hallo,
ich habe eine Länderliste, die ich als SQL-Script in eine DB einlesen will.
Dazu dachte ich an eine einzeilige Perlanweisung in der Bash, dass mir das SQL-Script erzeugen soll.
Bisher teste ich noch in der Ausgabe, was bis auf ein paar verlorene Zeilen ja schon ganz gut funktioniert.
zB wird aus
SG Singapur Singapore
SK Slowakei Slovakia
SI Slowenien Slovenia
durch den Ausdruck
$ perl -nle 'print "insert into (land, land_de, land_en) values ($1, $2, $3);" while (/^(\w{2})\t([\wÄÖÜäöü]+)\t(\w+)/g)' < insert_laender.sql
der Befehl
insert into (land, land_de, land_en) values (SG, Singapur, Singapore);
insert into (land, land_de, land_en) values (SK, Slowakei, Slovakia);
insert into (land, land_de, land_en) values (SI, Slowenien, Slovenia);
ich habe aber noch massive Probleme damit, die Parameter $1, $2, und $3 unter einfache Anführungszeichen zu setzen. Ein '$1' oder \'$1\' liefert nicht die gewünschten Ergebnisse.
Ich versuchte auch den String zu verketten:
$ perl -nle 'print "insert into (land, land_de, land_en) values ('". $1 ."', '".$2."', '".$3."');" while (/^(\w{2})\t([\wÄÖÜäöü]+)\t(\w+)/g)' < insert_laender.sql
Dabei kommt aber so etwas heraus:
insert into (land, land_de, land_en) values (. ., .., ..);
Irgendwie komme ich wohl irgendwo durcheinander, aber wo?
Markus