Grep is een klein Unix-programma voor het vinden van overeenkomende patronen. Begonnen als een Unix-programma, kan het zowel op Linux als op Mac en BSD worden gevonden. Het kan zowat elke tekst lezen, wat betekent dat het invoer kan lezen van andere commando's, of het kan bestanden direct openen en bekijken. Grep is waanzinnig handig, vooral als je via de opdrachtregel door mappen kijkt.

Probeer daarom een ​​van de meest voorkomende toepassingen voor Grep uit, zoek een bestand in een map. Kijk door je map "~ / Downloads" voor alle "jpg" -afbeeldingen.

 ls ~ / Downloads | grep .jpg 

Grep zal ze allemaal weglaten en het ".jpg" -gedeelte markeren, omdat het is waarnaar je zocht.

Je pijpt de uitvoer (met het commando "|") van zowat elke opdracht in grep . Als je een gewoon tekstbestand hebt liggen, cat het uit en leid het resultaat in Grep om een ​​specifiek woord te vinden.

 cat file.txt | grep woord 

Grep zal alle regels in het bestand afdrukken met het woord dat je hebt laten zoeken.

Vergeet de zaak

Unix-achtige systemen zijn hoofdlettergevoelig, wat betekent dat "Ubuntu" compleet anders is dan "ubuntu." Dat kan vervelend zijn bij het zoeken naar iets. Grep heeft een vlag om het probleem op te lossen. Voeg de vlag -i aan uw zoekopdracht en Grep negeert de case.

 ls ~ / Downloads | grep -i Ubuntu 

Zoeken in een bestand

Het zou niet zo handig zijn om een cat nodig te hebben elke keer dat je een bestand wilde doorzoeken. Eigenlijk niet. Grep kan zelf door bestanden zoeken. Geef het het pad naar het bestand door, en Grep doet de rest.

 grep -i woord /path/to/file.txt 

Recursieve zoekopdrachten

Grep kan tegelijkertijd meer dan één bestand of map doorzoeken. Wees gewaarschuwd, als u op zoek bent naar bestandsnamen, zal Grep ook standaard door bestanden bladeren. De vlag -r vertelt Grep om recursief te zoeken.

 ls ~ / Downloads | grep -r .deb 

Je kunt dit ook koppelen met andere vlaggen. Misschien wilt u de vlag -I bij het uitvoeren van recursieve zoekopdrachten om te voorkomen dat Grep door binaire bestanden kijkt.

 ls ~ / Downloads | grep -iIr .deb 

Vind het tegenovergestelde

Je kunt Grep ook vertellen om naar alles te zoeken dat niet het opgegeven patroon bevat. Dit zou goed zijn in gevallen waar je een fout moet vinden of je hebt een map met veel bestanden van een of twee typen.

 grep -rv '192.168.1.110' / etc / nginx 

Woorden en lijnen

Het kan ook handig zijn om Grep te laten zoeken naar complete woorden of lijnen, in plaats van alles met een bepaald patroon. Stel je voor dat je op zoek bent naar een reeks tekens die gebruikelijk is als onderdeel van een woord, maar je hebt het nodig om gescheiden te zijn. Bijvoorbeeld het woord 'it'. Het is duidelijk dat er niet vaak zou worden gezocht naar een patroon als 'it', maar het bewijst het nut.

 cat textfile.txt | grep -w het 

In plaats van elk woord af te drukken dat het patroon bevat, zal Grep het woord alleen zelf afdrukken. Het doet hetzelfde voor hele regels met de vlag -x, dus als je op zoek bent naar een zin of een enkele regel in een configuratiebestand, kan dat echt helpen.

Als je geïnteresseerd bent in het onderzoeken van alles wat Grep kan doen, voer dan man grep in een terminal voor de volledige documentatie. Dit artikel behandelde de basisprincipes en alles wat u normaal gesproken van deze krachtige tool nodig zult hebben. Deel met ons als u weet wat voor krachtige toepassingen het Grep-commando ook is.

Afbeeldingkrediet: Shell-script points of interest to coordinates