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.

One thought on “perl e linea di comando

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *