Het grep-commando geeft toegang tot het grep-hulpprogramma, een krachtig hulpmiddel voor bestandsverwerking dat wordt gebruikt om patronen in tekstbestanden te vinden. Het heeft veel praktische toepassingen en is zeker een van de meest gebruikte Linux-commando's. Deze gids illustreert enkele eenvoudige maar nuttige Linux grep-commando's die in de praktijk kunnen worden gebruikt.
Voorbeeldbestand voor demonstratie
We hebben een referentiebestand gemaakt om lezers te helpen grep beter te begrijpen. U kunt een kopie van dit bestand maken door de volgende shell-opdracht in uw terminal uit te voeren.
hoe ram op computer te vergroten
cat <> test-file
This is a simple text file that contains
multiple strings as well as some telephone numbers
(555) 555-1234 (567) 666-2345
and email plus web addresses
john@doe.com
https://google.com
ftp://mywebserver.com
END
1. Zoek tekst in bestanden
Om naar een tekstpatroon in een bestand te zoeken, voert u gewoon grep uit gevolgd door de patroonnaam. Geef ook de naam op van het bestand dat de tekst bevat.
grep 'email' test-file
Dit commando zal de regel in onze . weergeven testbestand dat het woord bevat e-mail . U kunt dezelfde tekst ook in meerdere bestanden zoeken met grep.
grep 'example' /usr/share/dict/american-english /usr/share/dict/british-english
De bovenstaande opdracht geeft alle instanties van het woord weer voorbeeld in de Amerikaans Engels en Brits Engels woordenboek bestanden.
2. Vind exacte overeenkomende woorden
De Linux grep-opdracht die in het eerdere voorbeeld is geïllustreerd, bevat ook regels met gedeeltelijke overeenkomsten. Gebruik de onderstaande opdracht als u alleen de exacte voorkomens van een woord nodig hebt.
grep -w 'string' test-file
De -in of --woord-regexp optie van grep beperkt de uitvoer tot alleen exacte overeenkomsten. Grep bestaat uit enkele extra vlaggen die ook met het standaardcommando kunnen worden gebruikt.
Verwant: Hoe Grep zijn naam kreeg? De geschiedenis achter de creatie van Grep
3. Negeer onderscheidingen tussen hoofdletters
Standaard zoekt grep op hoofdlettergevoelige wijze naar patronen. U kunt dit echter uitschakelen als u niet weet in welk geval het patroon van tevoren is.
grep -i 'this' test-file
Gebruik de -l of --negeer zaak optie om hoofdlettergevoeligheid uit te schakelen.
4. Tel het aantal patronen
De -C vlag staat voor Graaf . Het geeft het aantal overeenkomsten weer dat voor een bepaald patroon is gevonden. Beheerders kunnen dit gebruiken om specifieke informatie over het systeem op te halen.
Je kunt pijpen het ps-commando met grep om de processen te tellen die bij de huidige gebruiker horen.
ps -ef | grep -c $USER
De volgende opdracht geeft het aantal MP3 bestanden aanwezig in een directory.
ls ~/Music | grep -c .mp3
5. Toon regelnummers met overeenkomsten
Misschien wilt u de regelnummers vinden die een bepaalde overeenkomst bevatten. Gebruik de -N of --regel-nummer optie van grep om dit te bereiken.
cat /etc/passwd | grep -n rubaiat
Deze optie is met name handig voor het opsporen van fouten in broncodes en het oplossen van problemen met logbestanden. Om alle getallen voor lijnen in de . weer te geven ~/.vimrc die worden gebruikt voor het configureren van de Vim-teksteditor:
grep -n 'set' ~/.vimrc
6. Bestandsnamen zoeken met extensies
Om een lijst te krijgen van alle MP3 bestanden aanwezig in de ~/Muziek map:
ls ~/Music/ | grep '.mp3'
U kunt vervangen .mp3 met andere extensies voor het lokaliseren van specifieke bestanden. De volgende opdracht geeft een overzicht van alle php bestanden die aanwezig zijn in de huidige werkdirectory.
hoe ubuntu updaten vanaf terminal
ls | grep '.php'
7. Vind patronen in gecomprimeerde bestanden
De Linux grep-opdracht kan ook patronen vinden in gecomprimeerde bestanden. U moet de zgrep commando om dit te doen, echter. Maak eerst een gecomprimeerd archief van onze testbestand door te typen:
gzip test-file
Nu kunt u zoeken naar tekst of andere patronen in het resulterende archief.
zgrep email test-file.gz
8. Zoek e-mailadressen
Beheerders kunnen ook e-mailadressen uit tekstbestanden weergeven met behulp van de Linux grep-opdracht. In het volgende voorbeeld wordt dit gedaan door te zoeken naar een patroon voor reguliere expressies.
grep '^[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-z]{2,}' test-file
U kunt reguliere expressies vinden om soortgelijke taken uit te voeren of u kunt ze zelf maken als u weet hoe ze werken.
9. Vind telefoonnummers met Grep
U kunt grep reguliere expressies gebruiken om telefoonnummers uit een tekstbestand te filteren. Houd er rekening mee dat u het patroon moet aanpassen aan het type telefoonnummer dat u nodig hebt.
grep '(([0-9]{3})|[0-9]{3})[ -]?[0-9]{3}[ -]?[0-9]{4}' test-file
Het eerder genoemde commando filtert tiencijferige Amerikaanse telefoonnummers eruit.
10. Vind URL's van bronbestanden
We kunnen de kracht van grep gebruiken om URL's in tekstbestanden op te sommen. De onderstaande opdracht drukt alle URL's af die aanwezig zijn in de testbestand .
grep -E '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file
We gebruiken weer de -EN optie voor uitgebreide reguliere expressies. U kunt ook de egrep commando om te voorkomen dat u dit toevoegt.
egrep '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file
Het Linux Grep-commando beheersen
We hebben verschillende nuttige voorbeelden gegeven van het Linux grep-commando voor het aanpakken van problemen in de echte wereld. Hoewel deze voorbeelden de kracht van grep voor tekstverwerking illustreren, moet je reguliere expressies onder de knie hebben als je superproductief wilt zijn met grep.
Soms komen Linux-gebruikers bepaalde situaties tegen waarin ze zich de verschillende opties met betrekking tot een opdracht niet kunnen herinneren. Hopelijk biedt het Linux-besturingssysteem je manieren om opdrachtregelhulp te krijgen voor bijna elk systeemhulpprogramma.
Deel Deel Tweeten E-mail 7 manieren om Command Line Help op Linux te krijgenAlle essentiële commando's voor het leren over Linux-commando's vanaf de opdrachtregel
Lees volgende Gerelateerde onderwerpen- Linux
- Linux
- Linux-opdrachten
Rubaiat is een CS-graduaat met een sterke passie voor open-source. Behalve dat hij een Unix-veteraan is, houdt hij zich ook bezig met netwerkbeveiliging, cryptografie en functioneel programmeren. Hij is een fervent verzamelaar van tweedehands boeken en heeft een nooit aflatende bewondering voor classic rock.
Meer van Rubaiat HossainAbonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
koop en verkoop websites zoals craigslistKlik hier om je te abonneren