Questo sito utilizza i cookie tecnici di Joomla per la gestione della sessione dell'utente.

Il proseguimento nella navigazione implica un tacito assenso all'utilizzo dei cookies.

Se non sei d'accordo sull'utilizzo, ti invito ad allontanarti da questo sito. 

 

Direttiva Europea per la regolamentazione della Privacy.

Linux - Cerchiamo un file con un determinato testo al suo interno

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

Per cercare un file che contenga una determinata stringa al suo interno possiamo sfruttare il comando grep.

 


GREP è un comando che consente di effettuare una ricerca di stringhe o pattern all'interno di file. E' un comando molto potente e completo. E' possibile concatenarlo ad altri programmi per poter applicare le manipolazioni eseguite dagli altri programmi solo a determinate righe dei file. 

La sintassi da applicare al comando per ricercare nel disco i file contenenti una determinata stringa è

grep -r "%stringa%" %path ricerca%

 dove

%stringa% è il testo che si vuole cercare all'interno del file 

%path ricerca% è la directory in cui cercare

GREP gestisce le espressioni regolari, è quindi possibile farne uso allinterno dei parametri che gli passiamo. Ad esempio, se volessimo ricercare in un file la stringa "Mario ROSSI" ma non ci ricordiamo se il cognome è ROSSI o ROSSO possiamo  scrivere

grep-r "Mario ROSS." /var/colleghi

dove il carattere "." sta ad indicare un qualsiasi carattere, e solo uno! Se fossimo insicuri anche del penultimo carattere dovremmo sostituire anche quello con un punto ottenendo

grep-r "Mario ROS.." /var/colleghi

 

Le espressioni regolari posso essere contenute anche nel mezzo della stringa da ricercare, non solo alle estremità, quindi se il dubbio che ROSSI in realta sia un RUSSI o un RUSSO o un RESSO o chi per loro, il la stringa da cercare sarà

 grep-r "Mario R.S.." /var/colleghi

L'esempo restituirà in uscita la lista di tutti i colleghi che hanno il congnome che inizia con la R, in cui la terza lettera è una S e che hanno il cognome di 5 caratteri.  Se invece non sappiamo da quante lettere è composto il cognome possiamo fare uso del carattere jolly *, che sta ad indicare un arbitrario numero di lettere. 

Ad esempio 

 grep-r "R.S*" /var/colleghi

 

restituirà tutti i RUSSI ROSSI ROSSO RISSA etc, etc, di prima, più tutti i colleghi che hanno il congnome che inizia con la R, in cui la terza lettera è una S e che sono lunghi un totale indefinito di caratteri, come RUSSAFA, ROSSIELLO, ROSAMARINA, ROSASPINA etc, etc, etc.