[FoLUG] shell di linux

Enrico Placci e.placci@gmail.com
Ven 4 Apr 2014 10:11:26 CEST


On 2014-04-03 at 20:41:41, Riccardo Corrado (riccardo.corrado@gmail.com) wrote:
> Enrico, posso chiederti di spiegarmi nel dettaglio la definizione del
> pattern in Perl che utilizzeresti per la ricerca?
> Grazie!!! :)
> Ric

Certo, avevo intenzione di farlo ma ieri avevo poco tempo.

> Il 03/apr/2014 18:21 "Enrico Placci" ha scritto:
> perl -ne '/(\d\d)\// ; print "$1\n"'
> >
>

dunque “perl” e` l’interprete , “-n” significa che perl mettera` il tuo programma dentro a un loop che legge l’input una linea alla volta, “-e” dice al perl di eseguire il programma seguente. Il programma e` racchiuso da “single quote” -> ‘
in modo che la shell non lo modifichi.
La prima parte 
/(\d\d)\// 
si occupa del matching, cioe` di trovare la stringa che ti serve.
/stringa/ 
^ significa cerca “stringa”
all’interno le parentesi tonde significano cattura questo match in una variabile
/(stringa)/
in questo caso “stringa" verra` salvato dentro la variabile $1 (1 come il primo match, se metti 2 coppie di parentesi saranno $1 e $2)
\d\d
significa che stiamo cercando due cifre (“d” come digit)
fuori dalle parentesi trovi 
\/
significa che le due cifre devono essere seguite da “/“ che pero` e` un carattere speciale, quindi deve essere “escaped” (non so come si dica in italiano) per distinguere questa barra da quelle che usiamo per dire a perl di cercare la stringa ( /stringa/). Per fare questo “escaping” dobbiamo precedere al carattere speciale il carattere “\”  .
Il “;” marca il termine della prima operazione, la seconda e` molto semplice: 
print “$1\n”
Stampa la variabile $1 e va a capo (\n).

On 2014-04-03 at 22:02:39, Silvio Lo Sciuto (silviodinotte@hotmail.com) wrote:
> Potevo usare solo script di linux bash. Abbiam risolto

Credo che non esistano distribuzioni al giorno d’oggi che non abbiano una versione di perl preinstallata, puoi eseguire questo comando in una shell bash.

Enrico









Maggiori informazioni sulla lista FoLUG