Cercare su più file

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
napoleone1981
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: gio 26 ago 2004, 0:00
Località: Sant'Elena

Cercare su più file

Messaggio da napoleone1981 »

Ciao,
dovrei cercare una stringa su un certo numero di file (tutti all'interno di una directory). Come si fa??? Ho pensato a qualcosa tipo
cat * | grep stringa o qualcosa con find è meglio??

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Codice: Seleziona tutto

grep stringa /percorso/di/ricerca/*

Avatar utente
napoleone1981
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: gio 26 ago 2004, 0:00
Località: Sant'Elena

Messaggio da napoleone1981 »

Ok, ma così, se non sbaglio, mi cerca solo all'interno dei file presenti in quella directory, ed io vorrei cercare anche nei file presenti all'interno di tutte le sottodirectory e cos' via...
In altre parole vorrei trovare dove è presente la stringa WX_2.6 all'interno dei sorgenti di aMule, che sono divisi in tante directory....

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

napoleone1981 ha scritto:Ok, ma così, se non sbaglio, mi cerca solo all'interno dei file presenti in quella directory, ed io vorrei cercare anche nei file presenti all'interno di tutte le sottodirectory e cos' via...
In altre parole vorrei trovare dove è presente la stringa WX_2.6 all'interno dei sorgenti di aMule, che sono divisi in tante directory....
prova :

#> find . | xargs grep "stringa_da_cercare" 2> /dev/null

forse va bene...

M.

PS: " . " deve essere la root directory della ricerca....

Avatar utente
napoleone1981
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: gio 26 ago 2004, 0:00
Località: Sant'Elena

Messaggio da napoleone1981 »

sembra non andare all'interno delle sottodirectory...
o forse questo errore non lo scrive il codice di aMule ma qualcos'altro...
amule: /usr/lib/libwx_gtk2_adv-2.6.so.0: version `WX_2.6' not found (required by amule)
amule: /usr/lib/libwx_gtk2_core-2.6.so.0: version `WX_2.6' not found (required by amule)

Io ho fatto:

Codice: Seleziona tutto

find . | xargs grep -i *WX_2.6* 2> /dev/null
oppure

Codice: Seleziona tutto

find . | xargs grep -i "WX_2.6" 2> /dev/null
ma niente...

Avatar utente
Paoletta
Staff
Staff
Messaggi: 3975
Iscritto il: lun 25 apr 2005, 0:00
Slackware: 14.2 - 64 bit
Desktop: fluxbox
Località: Varese

Messaggio da Paoletta »

per fare quel che vuoi fare tu io faccio così:

Codice: Seleziona tutto

 find -true | xargs grep "stringa_da_cercare" 
P.S. ovviamente devi essere nella dir giusta; altrimenti la puoi passare come parametro a find

ciao!

Avatar utente
useless
Staff
Staff
Messaggi: 3896
Iscritto il: dom 12 ott 2003, 0:00
Località: A place where the streets have no name
Contatta:

Messaggio da useless »

Codice: Seleziona tutto

find tuadir -exec grep -l {} \;

Avatar utente
masalapianta
Iper Master
Iper Master
Messaggi: 2775
Iscritto il: lun 25 lug 2005, 0:00
Nome Cognome: famoso porco
Kernel: uname -r
Desktop: awesome
Distribuzione: Debian
Località: Roma
Contatta:

Messaggio da masalapianta »

se avessi letto la man page di grep sapresti che esiste lo switch -r che rende la ricerca di grep ricorsiva per tutte le sottodirectory della directory in cui inizi la ricerca.

Avatar utente
MAT
Linux 4.x
Linux 4.x
Messaggi: 1242
Iscritto il: mer 9 mar 2005, 0:00
Nome Cognome: Matteo Magni
Kernel: 2.6.20
Desktop: Fluxbox
Distribuzione: Gentoo
Località: Vignola, Modena

Messaggio da MAT »

Bè, se tu scrivi
dovrei cercare una stringa su un certo numero di file (tutti all'interno di una directory)
la gente non se lo immagina che vuoi guardare anche nelle sotto-directory.
Allora basta usare l'opzione -R o -r o --recursive, che, come detto, una consultazione a man grep ti avrebbe rivelato senza troppi sforzi.

Avatar utente
absinthe
Iper Master
Iper Master
Messaggi: 2354
Iscritto il: dom 15 mag 2005, 0:00
Nome Cognome: Matteo Nunziati
Slackware: 12.1 - defunct
Kernel: 2.6.32-5-amd64
Desktop: gnome
Distribuzione: debian squeeze
Località: Prato
Contatta:

Messaggio da absinthe »

masalapianta ha scritto:se avessi letto la man page di grep sapresti che esiste lo switch -r che rende la ricerca di grep ricorsiva per tutte le sottodirectory della directory in cui inizi la ricerca.
azz... il bello è che sono anche andato a vedere se esisteva una cosa del genere prima di rispondegli!!! quando si dice che uno c'ha lo sguardo da lince... eccolo quà:

Codice: Seleziona tutto

-R, -r, --recursive
              Read all files under each directory, recursively; this is equiv-
              alent to the -d recurse option.
M.

Avatar utente
napoleone1981
Linux 2.x
Linux 2.x
Messaggi: 380
Iscritto il: gio 26 ago 2004, 0:00
Località: Sant'Elena

Messaggio da napoleone1981 »

Idem... altrimenti non postavo qua... visto che sapevo che grep cercava stringhe all'interno di files...

Rispondi