[PLUTO-help] Uso di perl da riga di comando

Nicola Ruggero nicola a nxnt.org
Dom 10 Giu 2007 17:05:53 CEST


Ciao,
sto modificando uno script in bash che mi elabora le statistiche di ciascun 
file contenente le traduzioni di KDE. In pratica questo script per ciascun 
file .po estrae il nome dell'ultimo traduttore, i messaggi tradotti/non 
tradotti e la data dell'ultima modifica in un file temporaneo. 
Successivamente un'altro script inserisce il contenuto del file temporaneo 
(ovvero le statistiche di traduzione) in una banca dati mysql.
Per evitare SQL injections volevo controllare i campi data ultima modifica e 
nome traduttore in modo che non contenessero istruzioni SQL.

Pensavo di fare un match di questi 2 campi con una espressione regolare, se 
passa il controllo la stringa viene scritta nel file temporaneo così com'è 
altrimenti la stringa viene annullata ($stringa="") e poi viene scritta.

Pensavo di usare case ma non gestisce bene le regexp, pensavo allora di usare 
perl.


La struttura a grandi linee è questa:

#!/bin/sh
for namePOT in cartella_file_pot/*.pot
 do
  namePO= ... # estrazione con sed grep ecc. del nomefile.po
  DATETIME= # estrazione con grep sed ecc. della data di modifica nel formato 
YYYY-MM-DD HH-MM
  LASTTRANSLATOR= # estrazione con sed grep ecc. del nome traduttore
 
 echo -n "${DATETIME}-00:${LASTTRANSLATOR}:" >> tmpfile ;
done

Come faccio a passare a perl le variabili $DATETIME e $LASTTRANSLATOR in modo 
che le confronti con un'espressione regolare tipo: [0-9]{4,4}-((0[13578]|10|
12)-(0[1-9]|[1-2][0-9]|3[0-1])|02-(0[1-9]|[1-2][0-9])|(0[469]|11)-(0[1-9]|
[1-2][0-9]|30)) ([1-9]{1,1}|[0-1][0-9]|[1-2][0-3])-[0-5][0-9] ???

Ho provato con:
echo $DATETIME | perl -e 'if ($1 =~ /espressione_regolare/){print $0}'
ma mi dice:
bash: echo: write error: Broken pipe

Qualcuno mi può aiutare o suggerire qualche pagina della documentazione?
grazie, ciao!!

Nicola

-- 
Linux Registered User #333942 http://counter.li.org

Comunque, se vuoi saperne di piu', ora dovrai operare una scelta...
"Pillola Blu": fine della storia, domani ti sveglierai, crederai a cio'
che vorrai, ma sul tuo PC rimarra' ancora Windows XP...
"Pillola Rossa": resti nel paese delle meraviglie, installerai Linux, e
finalmente scoprirai quant'e' profonda la tana del bianconiglio...
(By PLUTO Mailing list)


More information about the pluto-help mailing list