Zoeken op website

Hoe u een specifieke tekenreeks of woord kunt vinden in bestanden en mappen


Wilt u alle bestanden vinden die een bepaald woord of een bepaalde reeks tekst bevatten op uw hele Linux-systeem of een bepaalde map. In dit artikel wordt uitgelegd hoe u dat kunt doen. U leert hoe u recursief door mappen kunt bladeren om alle bestanden te vinden en weer te geven die een bepaalde reeks tekst bevatten.

Een eenvoudige manier om dit uit te zoeken is door het grep-patroonzoekprogramma te gebruiken. Dit is een krachtig, efficiënt, betrouwbaar en populairste opdrachtregelhulpprogramma voor het vinden van patronen en woorden uit bestanden of mappen op Unix-achtige systemen.

Lees ook: 11 geavanceerde Linux ‘Grep’-opdrachten voor tekenklassen en haakjesexpressies

Met het onderstaande commando worden alle bestanden weergegeven die een regel met de tekst “check_root” bevatten, door recursief en agressief te zoeken in de map ~/bin.

grep -Rw ~/bin/ -e 'check_root'

Waar de -R optie grep vertelt om alle bestanden onder elke map recursief te lezen, waarbij alleen symbolische links worden gevolgd als ze op de opdrachtregel staan en de optie -w< instrueert het om alleen die regels te selecteren die overeenkomsten bevatten die hele woorden vormen, en -e wordt gebruikt om de string (patroon) te specificeren die moet worden doorzocht.

U moet de opdracht sudo gebruiken bij het zoeken naar bepaalde mappen of bestanden waarvoor rootrechten nodig zijn (tenzij u uw systeem beheert met het root-account).

 
sudo grep -Rw / -e 'check_root'	

Om onderscheid tussen hoofdletters en kleine letters te negeren, gebruikt u de -i optie, zoals weergegeven:

grep -Riw ~/bin/ -e 'check_root'

Als u de exacte regel wilt weten waar de tekstreeks bestaat, voegt u de optie -n toe.

grep -Rinw ~/bin/ -e 'check_root'

Ervan uitgaande dat er verschillende soorten bestanden zijn in een map waarin u wilt zoeken, kunt u ook het type bestanden opgeven waarin u wilt zoeken, bijvoorbeeld op extensie, met behulp van de optie --include.

Dit voorbeeld instrueert grep om alleen door alle .sh bestanden te kijken.

grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'

Bovendien is het mogelijk om naar meer dan één patroon te zoeken met behulp van de volgende opdracht.

grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'

Dat is het! Als u een andere opdrachtregeltruc kent om tekenreeksen of woorden in bestanden te vinden, deel deze dan met ons of stel vragen over dit onderwerp, gebruik dan het onderstaande opmerkingenformulier.