Wat is GREP in Linux en hoe gebruik je het?
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