Pagina 1 di 1

Comando grep

Inviato: ven 19 ott 2007, 20:33
da mordecai
Salve!Non sono mai riuscito a risolvere questo problema usando il comando grep.
Praticamente grep non a altro che visualizzare il contenuto di un file (ad es. .txt).
Con questo comando:

Codice: Seleziona tutto

grep -r --include="*.txt" ciccio *
grep analizza ricorsivamente tutti i file con estensione .txt,che contengono la parola ciccio.Ma grep visualizza non solo la parola,ma l'intera riga che contiene la parola ciccio.
Bene.

Il mio problema,è non riuscire a capire come applicare un altro filtro,che mi consente di vedere solo le righe contententi la parola ciccio e nella stessa riga la parola pluto.
Esempio:
1)ciccio pippo xxx
2)ciccio yyy pluto

Il comando che voglio creare mi deve stampare a video solo la riga 2.

È possibile?

GRazie!

Inviato: ven 19 ott 2007, 20:43
da michelino
Se ho capito bene:

Codice: Seleziona tutto

grep ciccio file.txt | grep pluto

Inviato: ven 19 ott 2007, 20:44
da dapuzz

Codice: Seleziona tutto

grep -r --include="*.txt" ciccio * | grep pluto

Inviato: ven 19 ott 2007, 20:50
da mordecai
dapuzz ha scritto:

Codice: Seleziona tutto

grep -r --include="*.txt" ciccio * | grep pluto
Bene.
Se invece,volessi trovare più parole nella stessa stringa,devo applicare sempre lo stesso ragionamento?CIoè | grep ciccio |grep pippo ecc ecc.

Se invece al posto di pluto,volessi trovare un carattere speciale come " ?^£$ ",cosa si può fare?

Inviato: ven 19 ott 2007, 21:12
da Mario Vanoni
mordecai ha scritto:
dapuzz ha scritto:

Codice: Seleziona tutto

grep -r --include="*.txt" ciccio * | grep pluto
Bene.
Se invece,volessi trovare più parole nella stessa stringa,devo applicare sempre lo stesso ragionamento?CIoè | grep ciccio |grep pippo ecc ecc.

Se invece al posto di pluto,volessi trovare un carattere speciale come " ?^£$ ",cosa si può fare?
man egrep

egrep ... 'ciccio|pluto' ...

man awk

per ricerche piu` complesse

ATTENTO: ?^ e $ sono speciali, da usare con cognizione,
letteralmente con backslash (\).

Mario Vanoni

Inviato: sab 20 ott 2007, 11:49
da targzeta
Mario Vanoni ha scritto:...man egrep

egrep ... 'ciccio|pluto' ...
...
Ad occhio e croce questo mi sembra un OR lui invece vuole un AND.
Potrebbe fare qualcosa del genere

Codice: Seleziona tutto

grep -e "ciccio.*pluto" file.txt
comunque, quello che gli serve è:
man 7 regex
oppure, dato che se non sbaglio grep accetta anche espressioni regolari perl,
man perlre
oltre alla spiegazione che c'è anche nel manuale di grep. Insomma si dovrebbe informare meglio sulle espressioni regolari, che è cosa buona e giusta.

Spina