Perl e Linea di Comando

Il perl con le sue espressioni regolari è anche un fantastico tool per la linea di comando in grado di sostituire e surclassare i pur notevoli awk e sed. Usato con le opzioni del caso, infatti, il perl ne riprende tutte le caratteristiche ma aggiunge la sua flessibilità e ricchezza.

Le opzioni chiave per l’uso da linea di comando sono “-p” e “-n“: in entrambi i casi lo script o il comando in perl viene eseguito per ogni riga del file in ingresso ma nel secondo caso il risultato va in output.

Queste opzioni corrispondono ai loop che riporto sotto:

-n

LINE:
while (<>) {
… # programma
}
-p

LINE:
while (<>) {
… # programma
} continue {
print or die “-p destination: $!\n”;
}
Molto utili sono anche

-e che permette di inserire direttamente sulla linea di comando il codice perl da eseguire
-i che fa si che venga modificato direttamente il file che viene letto
Ad esempio entrambi i seguenti comandi

cat /etc/passwd |perl -pe ‘s/(.*):(.*):(.*):(.*):(.*):(.*):(.*)/$1\t\t$6/’
cat /etc/passwd | awk -F: ‘{print $1″\t\t”$6}’
permettono di estrarre dal file password gli utenti e le loro home.

Perl, utilizzato in questo modo, permette di definire dei blocchi di codice BEGIN e END per eventuali operazioni preliminari a o conclusive del loop implicito: si immagini il caso in cui si voglia contare il numero di occorrenze di un qualche pattern in un file.

La documentazione delle opzioni è su perldoc perlrun.