Găsiți fișiere care conțin text specific în Linux
Linux, indiferent de distribuția pe care o utilizați, vine cu o serie de instrumente GUI care permit căutarea fișierelor. Mulți manageri de fișiere moderni acceptă căutarea fișierelor chiar în lista de fișiere. Cu toate acestea, există o serie de situații când trebuie să utilizați consola, de exemplu, în timpul unei sesiuni SSH sau când serverul X nu pornește. Iată cum puteți găsi rapid fișiere care conțin text specific folosind terminalul.
Dacă puteți utiliza GUI, căutarea fișierelor nu este o problemă. În mediul meu preferat de desktop XFCE, managerul de fișiere Thunar permite căutarea fișierelor tastând numele fișierului direct în lista de fișiere.
Cu toate acestea, niciunul dintre managerii de fișiere pe care i-am încercat nu permite căutarea conținutului fișierului.
Pentru a ocoli această limitare atunci când lucrați într-o sesiune GUI, puteți utiliza Сatfish. Сatfish este un instrument de căutare popular. Permite căutarea conținutului fișierului. Trebuie să faceți clic pe pictograma roată și să activați opțiunea Căutați conținutul fișierului.
Cu toate acestea, când vine vorba de terminal, nu puteți folosi niciun instrument grafic. De asemenea, consider Catfish nu este util și prefer instrumentele clasice de consolă în detrimentul lui. Iată metodele și instrumentele pe care le folosesc.
Pentru a găsi fișiere care conțin text specific în Linux, urmează următoarele instrucțiuni.
- Deschideți aplicația de terminal preferată. Terminalul XFCE4 este preferința mea personală.
- Tastați următoarea comandă:
find ./ -type f -exec grep -l „text de găsit” {} \;
- Aceasta va produce lista de fișiere care conține porțiunea de text necesară.
Comanda find va căuta fișiere începând din directorul curent, „./”. În schimb, puteți specifica calea dorită.
Optiunea -tip f îi spune să caute numai fișiere și să excludă directoare. De asemenea, îl puteți face să caute doar un anumit tip de fișier adăugând opțiunea după cum urmează:find ./ -type f -iname „*.txt” -exec grep -l „text de găsit” {} \;
Vedeți următoarea captură de ecran:
The -exec opțiunea apelează instrumentul grep pentru fiecare dintre fișierele care se potrivesc pentru a le verifica conținutul. Dacă textul este găsit în fișier, numele acestuia va fi adăugat la ieșire, datorită -l opțiune.
Alternative
Există alternative la metodele descrise mai sus. În primul rând, puteți utiliza numai grep instrument. Încercați următoarea comandă:
grep -iRl „text de găsit” ./
- -i înseamnă ignore text case.
- -R înseamnă procesarea recursivă a fișierelor.
- -l înseamnă „afișați numele fișierului, nu rezultatul în sine”.
După cum puteți vedea, această metodă este mai puțin flexibilă decât găsi comanda.
Comandantul de la miezul nopții
O altă metodă pe care o folosesc adesea este Midnight Commander (mc), aplicația de gestionare a fișierelor din consolă. Spre deosebire de find sau grep, mc nu este inclus implicit în toate distribuțiile Linux pe care le-am încercat. Poate fi necesar să-l instalați singur.
Pentru a găsi fișiere care conțin un anumit text folosind Midnight Commander, porniți aplicația și apăsați următoarea secvență de pe tastatură:
Alt + Schimb + ?
Aceasta va deschide dialogul de căutare.
Completați secțiunea „Nume fișier:”. Puteți specifica ceva de genul „*.txt” pentru a căuta textul dvs. numai în fișierele text.
Acum, completați Conţinut: cutie. Tastați textul pe care îl conțin fișierele și apăsați tasta Enter.
Acesta va găsi toate fișierele care corespund criteriilor.
Asta e.