Questo sito utilizza i cookie per personalizzare i contenuti e gli annunci (Google AdSense), fornire le funzioni dei social media (condivisione degli articoli) e analizzare il traffico (Google Analytics). Inoltre fornisce informazioni sul modo in cui utilizzi il sito alle agenzie pubblicitarie, agli istituti che eseguono analisi dei dati web e ai social media miei partner (Google). 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. Visualizza i dettagli.

Sabato 3 Dicembre 2016

Valutazione attuale: 0 / 5

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.