Kennisbank › Tekstverwerking › grep: Tekst bewerken op de commandoregel
tekstverwerking starter 27 August 2026

grep: Tekst bewerken op de commandoregel

grep: Tekst doorzoeken op de commandoregel Dit artikel legt uit hoe `grep` werkt, waar het vandaan komt en hoe je het inzet voor het doorzoeken van bestanden

grep zoekt en filtert. Het bewerkt niets. Dit artikel legt uit wat grep wél doet, hoe je het combineert met andere commando's om bestanden te wijzigen, en waarom die combinatie je meer controle geeft dan een directe bewerking ooit zou doen.

VEREISTEN

  • Een Linux- of Unix-omgeving met grep geïnstalleerd (grep 3.11 of nieuwer).
  • Toegang tot een terminal.
  • Basiskennis van de commandoregel: navigeren, bestanden bekijken.
  • Optioneel: een Nederlandstalige manpage, beschikbaar via man grep in Debian trixie.

STAPPEN

1. Zoek een patroon in een bestand.

De eenvoudigste vorm: grep "fout" logfile.txt toont alle regels in logfile.txt die het woord "fout" bevatten. Grep leest het bestand, filtert de regels, en print ze naar de terminal. Het origineel blijft onaangeraakt.


   grep "fout" logfile.txt

Dit is een read-only operatie. Je kunt hiermee niets kapot maken, wat het een veilige eerste stap maakt in elke analyse.

2. Leid de output om naar een nieuw bestand.

grep print naar stdout. Met > vang je die output op en schrijf je die naar een bestand. Zo maak je een gefilterde kopie zonder het origineel te wijzigen.


   grep "fout" logfile.txt > fouten.txt

Let op: > overschrijft een bestaand bestand. Wil je toevoegen aan een bestaand bestand, gebruik dan >>. Het origineel blijft intact, wat deze aanpak geschikt maakt voor het veilig splitsen van logs.

3. Combineer grep met pipes.

De echte kracht zit in de pipe (|). Die stuurt de output van het ene commando als invoer naar het volgende. Zo filter je niet alleen bestanden, maar ook de output van andere commando's.


   sudo dmesg | grep net

Dit commando toont alleen kernelberichten die het woord "net" bevatten. Bij netwerkproblemen zie je direct de relevante regels in plaats van de volledige dmesg-output. Dit werkt met elk commando dat naar stdout schrijft: ps, ss, journalctl, noem maar op.

4. Gebruik reguliere expressies voor preciezere patronen.

Grep accepteert reguliere expressies. Waar grep "fout" alleen het exacte woord vindt, zoekt grep "^fout" naar regels die met "fout" beginnen. Het dakje (^) is een anker dat het begin van een regel markeert.


   grep "^fout" logfile.txt

Reguliere expressies maken grep tot een precisie-instrument. Je kunt ermee zoeken op woordgrenzen, herhalingen, of karakterklassen. De syntax is uitgebreid, maar de basis is in een middag te leren.

5. Toon alleen het aantal overeenkomsten.

Soms wil je niet weten wélke regels matchen, maar hoeveel het er zijn. De -c vlag telt ze.


   grep -c "fout" logfile.txt

Dit is sneller dan tellen in een editor en geschikt voor scripting. Combineer het met een pipe om te tellen in de output van een ander commando.

6. Zoek recursief in een directorystructuur.

Met -r scant grep alle bestanden in een directory en zijn subdirectories. Dit is onmisbaar bij het doorzoeken van configuratiemappen of broncode.


   grep -r "timeout" /etc/

Grep toont per overeenkomst de bestandsnaam en de regel. Let op: -r volgt geen symlinks. Gebruik -R als je die ook wilt volgen. Dit kost meer tijd, maar is grondiger.

7. Toon context rond een overeenkomst.

Een losse regel zegt vaak niet genoeg. Met -C 3 toont grep drie regels vóór en na elke overeenkomst. Zo zie je de context van een foutmelding zonder het hele bestand te openen.


   grep -C 3 "fout" logfile.txt

Dit is standaard in elke loganalyse. Wil je alleen regels erna (-A) of ervoor (-B), dan kun je die vlaggen apart gebruiken.

8. Wijzig een bestand via een omweg.

Grep zelf kan geen bestand wijzigen. Maar door de gefilterde output naar een tijdelijk bestand te schrijven en dat terug te kopiëren, bereik je hetzelfde effect.


   grep -v "debug" logfile.txt > tmp.txt && mv tmp.txt logfile.txt

De -v vlag keert de match om: grep toont alles behalve regels met "debug". Het resultaat schrijf je naar tmp.txt, en mv vervangt het origineel. Dit is een handmatige implementatie van wat sed in één stap doet — voor eenmalige bewerkingen is het prima. Voor herhaalde bewerkingen is sed sneller en minder foutgevoelig.

VERIFICATIE

Controleer of grep correct werkt:


grep --version

Dit toont de versie, bijvoorbeeld grep (GNU grep) 3.11. Om te controleren of een filter correct is toegepast:


grep -c "debug" logfile.txt

Als dit 0 toont na stap 8, zijn alle regels met "debug" verwijderd. Je kunt ook diff gebruiken om het origineel en het resultaat te vergelijken:


diff logfile.txt tmp.txt

Geen output betekent dat de bestanden identiek zijn — of dat grep niets heeft gevonden.

VEELGESTELDE PROBLEMEN

1. Grep vindt niks, maar de tekst staat er wel.

Controleer of het patroon geen reguliere expressie is die je letterlijk bedoelde. Het punt (.) matcht elk karakter, en het dakje (^) markeert het begin van een regel. Gebruik grep -F om het patroon letterlijk te behandelen, of escape de speciale karakters met een backslash.

2. Grep klaagt over "Binary file matches".

Grep herkent binaire bestanden en weigert de output te tonen. Gebruik grep -a om het bestand als tekst te behandelen, of grep -I om binaire bestanden over te slaan. De eerste optie is riskant bij grote binaire bestanden — de output kan onleesbaar zijn.

3. De output van grep is te groot om te lezen.

Leid de output naar less om te bladeren, of naar een bestand om later te analyseren. grep "fout" logfile.txt | less is de snelste oplossing voor lange outputs.

---

Grep is geen tekstverwerker. Het is een filter. En filters zijn het waardevolst wanneer je ze combineert: met pipes, met omleiding, met andere tools. De geschiedenis helpt hierbij niet — dat grep in de jaren zestig uit de ed-editor is voortgekomen, verklaart de naam g/re/p, maar niet waarom je het vandaag zou gebruiken. Wat wel telt: grep zit op elke server, in elke container, op elk netwerkapparaat. Het is onderdeel van de POSIX-standaard en aanwezig op vrijwel elke Linux-installatie.

Wie grep beheerst, doorzoekt logs in seconden die een editor in minuten kost. Wie grep combineert met sed of awk, bewerkt bestanden zonder ze te openen. De vraag is niet of je grep nodig hebt. De vraag is hoe lang je zonder blijft werken.

← Terug naar kennisbank