10 praktische voorbeelden van het Linux Grep-commando

10 praktische voorbeelden van het Linux Grep-commando

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 krijgen

Alle essentiële commando's voor het leren over Linux-commando's vanaf de opdrachtregel

Lees volgende
Gerelateerde onderwerpen
  • Linux
  • Linux
  • Linux-opdrachten
Over de auteur Rubaiat Hossain(39 artikelen gepubliceerd)

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 Hossain

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

koop en verkoop websites zoals craigslist
Klik hier om je te abonneren