*Markus: Probleme beim Escapen von Parametern

Beitrag lesen

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