Door Rubaiat Hossain
E-mail

Het grep-commando wordt gebruikt om naar strings in een tekstbestand te zoeken. Hier zijn tien voorbeelden van grep die u wellicht nuttig vindt.

Het grep-commando geeft toegang tot het grep-hulpprogramma, een krachtig hulpmiddel voor het verwerken van bestanden dat wordt gebruikt om patronen in tekstbestanden te vinden. Het heeft veel praktische gebruiksscenario's en is zeker een van de meest gebruikte Linux-commando's. Deze gids illustreert enkele eenvoudige maar nuttige Linux grep-opdrachten 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 op te geven.

kat <> test-bestand
Dit is een eenvoudig tekstbestand met
meerdere strings en enkele telefoonnummers
(555) 555-1234 (567) 666-2345
en e-mail plus webadressen
[email protected]
https://google.com
ftp://mywebserver.com
EINDE

1. Zoek tekst in bestanden

Om naar een tekstpatroon in een bestand te zoeken, voert u eenvoudig grep uit gevolgd door de patroonnaam. Geef ook de naam op van het bestand dat de tekst bevat.

grep "e-mail" testbestand

Deze opdracht geeft de regel weer in onze test-bestand dat het woord bevat e-mail. U kunt dezelfde tekst ook in meerdere bestanden zoeken met grep.

grep "voorbeeld" / 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 woordenboekbestanden.

2. Vind exacte matchwoorden

Het Linux grep-commando geïllustreerd in het eerdere voorbeeld geeft ook een lijst van regels met gedeeltelijke overeenkomsten. Gebruik het onderstaande commando als je alleen de exacte exemplaren van een woord nodig hebt.

grep -w "string" testbestand

De -w of --word-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 aan zijn naam is gekomen? De geschiedenis achter Grep's Creation

3. Negeer hoofdletters / kleine letters

Grep zoekt standaard naar patronen op een hoofdlettergevoelige manier. Misschien wilt u dit echter uitschakelen als u van tevoren niet weet in welk geval het patroon is.

grep -i "dit" testbestand

Gebruik de -ik of --negeer zaak optie voor het uitschakelen van hoofdlettergevoeligheid.

4. Tel het aantal patronen

De -c vlag staat voor tellen. Het geeft het aantal overeenkomsten weer dat is gevonden voor een bepaald patroon. 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 tot de huidige gebruiker behoren.

ps -ef | grep -c $ USER

De volgende opdracht geeft het aantal Mp3 bestanden aanwezig in een directory.

ls ~ / Muziek | grep -c .mp3

5. Regelnummers met overeenkomsten weergeven

Misschien wilt u de regelnummers vinden die een bepaalde overeenkomst bevatten. Gebruik de -n of --lijnnummer optie van grep om dit te bereiken.

cat / etc / passwd | grep -n rubaiat

Deze optie is vooral handig voor debuggen van broncodes en het oplossen van logboekbestanden. Om alle nummers voor regels in het ~ / .vimrc die worden gebruikt voor het configureren van de Vim-teksteditor:

grep -n "set" ~ / .vimrc

6. Zoek bestandsnamen met behulp van extensies

Om een ​​lijst te krijgen van alle Mp3 bestanden aanwezig in het ~ / Muziek directory:

ls ~ / Muziek / | 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 werkmap.

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. Maak eerst een gecomprimeerd archief van onze test-bestand door te typen:

gzip-testbestand

Nu kunt u zoeken naar tekst of andere patronen in het resulterende archief.

zgrep e-mail testbestand.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 reguliere-expressiepatroon.

grep '^ [a-zA-Z0-9] \ + @ [a-zA-Z0-9] \ + \. [a-z] \ {2, \}' testbestand

U kunt reguliere uitdrukkingen vinden voor soortgelijke taken of u kunt ze zelf maken als u weet hoe ze werken.

9. Zoek telefoonnummers met Grep

U kunt reguliere expressies van grep gebruiken om telefoonnummers uit een tekstbestand te filteren. Merk op dat u het patroon moet aanpassen aan het type telefoonnummers dat u nodig heeft.

grep '\ (([0-9] \ {3 \}) \ | [0-9] \ {3 \} \) [-] \? [0-9] \ {3 \} [-] \? [0-9] \ {4 \} 'testbestand

Het bovengenoemde commando filtert tiencijferige Amerikaanse telefoonnummers eruit.

10. Vind URL's uit bronbestanden

We kunnen de kracht van grep gebruiken om URL's in tekstbestanden weer te geven. De onderstaande opdracht drukt alle URL's af die aanwezig zijn in het test-bestand.

grep -E "^ (http | https | ftp): [\ /] {2} ([a-zA-Z0-9 \ - \.] + \. [a-zA-Z] {2,4}) "testbestand

We gebruiken opnieuw de -E 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 -het dossier

Het Linux Grep Command beheersen

We hebben verschillende nuttige voorbeelden gegeven van het Linux grep-commando voor het aanpakken van echte problemen. 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 commando niet kunnen herinneren. Hopelijk biedt het Linux-besturingssysteem je manieren om opdrachtregelhulp te krijgen voor bijna elk systeemhulpprogramma.

E-mail
7 manieren om Command Line Help op Linux te krijgen

Alle essentiële opdrachten om te leren over Linux-opdrachten vanaf de opdrachtregel

Lees Volgende

Gerelateerde onderwerpen
  • Linux
  • Linux
  • Linux-opdrachten
Over de auteur
Rubaiat Hossain (15 Artikelen gepubliceerd)

Rubaiat is een afgestudeerde CS met een sterke passie voor open-source. Behalve dat hij een Unix-veteraan is, houdt hij ook van netwerkbeveiliging, cryptografie en functioneel programmeren. Hij is een fervent verzamelaar van tweedehands boeken en heeft een oneindige 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!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.