erlug
[Top] [All Lists]

Re: [Erlug] pitonare perl

To: "ERlug - Lista Pubblica" <erlug@xxxxxxxxxxxxxx>
Subject: Re: [Erlug] pitonare perl
From: "Vladimir Nicola Chersi" <vladimir.nicola@xxxxxxxx>
Date: Mon, 14 Dec 2009 17:12:28 +0100 (CET)
> Aloha,
>
> io voglio creare un ciapping OSX per la mia meta` che le ravani tra file
> email achiviati e le trovi la robba che vuole secondo i termini di ricerca
> che mette.
>
> La cosa piu` furma ma meno utente friendly e` stata suggerita da Brini:
>
> perl -n0e 'if(/pippo/&&/pluto/){print "$ARGV\n"}' *.emlx
>
> Questa funge come unta, e permette di aggiungere termini di ricerca, ma ha
> da essere usata su un tty nella dir donde sono i file. Per rendere la cosa
> un paro piu` untente  friendly io ho fatto:
>
> #!/bin/bash
> echo "Enter the two search terms:\n"
> read name1 name2
> perl -n0e 'if ('/$name1/'&&'/$name2/') {print "$ARGV\n"}' *.emlx
>
> Che funge ma che ha i difetti del perl liscio piu` non posso aggiungere un
> numero imprecisato di termini.

Se be ricordo esiste una delle funzioni builtin di bash che, quando
chiamata, sputa il valore numerico di quante cose sono scritte DOPO il
comando chiamante. (O forse era il numero totale delle cose scritte, ma
basterebbe un banale "expr $numero -1" per ottenere il numero giusto...)

In definitiva io farei uno script del genere (non uso la sintassi bash
perche` a memoria non la so)

#!/bin/bash
#leggi il numero totale di parametri e salvali ognuno in una variabile
(con ciclo for)
if (parametri = 0) echo "questo programma si usa cosi` e cosa`" ; exit
if (primo parametro != /percorso/nomefileesistente) echo "percorso non
valido; echo "questo programma si usa cosi` e cosa`" ; exit
# cerca con i parametri dati (ad esclusione del primo che e` sempre il
percorso): crea la stringa di ricerca prima in bash, e poi passala alla
riga di perl gia` composta attraverso un'altra variabile creata apposta
echo "Buuuurp"

>Comunque, a me sorge il sospetto che se
> pitonassi mi verrebbe meglio il barbatrucco di creare una applicazionce
> che:
>
> 1) chieda donde stanno i file
> 2) chieda quanti termini di ricerca ci siano
> 3) li cerchi
> 4) sputi i risulatati
>
> Fondamentalmente a me per iniziare serve tradurre in pitone:
>
> perl -n0e 'if(/pippo/&&/pluto/){print "$ARGV\n"}' *.emlx
>
> Come fo?
>
> Ciao,
>
> Fede

Ciao, Vladimir Nicola

PS: ovvio che se i miei suggerimenti ti sono utili per ottenere il
risultato gradisco che tu posti lo script vero e proprio e funzionante qui
sulla ML. :-)

<Prev in Thread] Current Thread [Next in Thread>