ripgrep (vaak afgekort als rg) is een modern, snel en krachtig zoekhulpmiddel voor de commandoregel waarmee je bestanden recursief kunt doorzoeken, vergelijkbaar met grep, maar met betere prestaties en extra functies. Het is ontworpen voor het doorzoeken van code-repositories en negeert automatisch bestanden en mappen die zijn gedefinieerd in .gitignore of vergelijkbare configuratiebestanden. Hierdoor is ripgrep bijzonder efficiënt voor ontwikkelaars die met grote codebases werken.
Deze tutorial behandelt:
Installatie van ripgrep op Linux
Basissyntaxis en commando’s van ripgrep
Veelvoorkomende gebruiksscenario’s en voorbeelden
Geavanceerde functies
Vergelijking met andere zoektools zoals grep
Probleemoplossing en best practices
Aan het einde heb je een solide begrip van hoe je ripgrep effectief gebruikt.
De installatie van ripgrep is eenvoudig op de meeste Linux-distributies. Je kunt het installeren via de pakketbeheerder of door het binaire bestand te downloaden.
Volg deze stappen:
Werk de pakketlijst bij:
sudo apt update
Installeer ripgrep:
sudo apt install ripgrep fzf
De syntaxis van ripgrep lijkt op die van grep, maar ripgrep biedt standaard betere prestaties en krachtigere functies.
rg [OPTIONS] PATTERN [PATH]
Waarbij:
PATTERN de tekenreeks of reguliere expressie is waarnaar je zoekt.
[PATH] optioneel is en het bestand of de map specificeert. Als dit wordt weggelaten, zoekt ripgrep in de huidige map.
Om alleen bestanden met een bepaalde extensie te doorzoeken (bijv. .py):
rg "function" *.py
Wanneer je extensies direct gebruikt (*.py), zoekt ripgrep niet recursief in submappen. Gebruik hiervoor de optie --type:
rg --type py "function"
Dit zorgt ervoor dat de zoekopdracht wordt uitgevoerd in alle relevante bestanden binnen de mapstructuur.
ripgrep ondersteunt reguliere expressies:
rg '\d{4}-\d{2}-\d{2}'
Dit zoekt naar datums in het formaat YYYY-MM-DD.
rg -i "error"
Hiermee worden “error”, “Error” en “ERROR” gevonden.
Alleen Python-bestanden doorzoeken:
rg --type py "import"
Bijvoorbeeld de map node_modules uitsluiten:
rg "config" --glob '!node_modules/*'
ripgrep kan zoeken in gecomprimeerde bestanden zonder deze eerst uit te pakken. Ondersteunde formaten zijn onder andere .gzip, .xz, .lz4, .bzip2, .lzma en .zstd.
Voorbeeld:
rg 'ERST' -z demo.gz
ripgrep kan extra context rond gevonden regels weergeven.
-B [number] – regels vóór de match
-A [number] – regels na de match
Voorbeeld:
rg "EXT4-fs \(sda3\)" /var/log/syslog.demo -B 1 -A 2
rg "EXT4-fs \(sda3\)" /var/log/syslog -C 1
-B 1 -A 2 geeft meer controle met verschillende aantallen regels
-C 2 toont symmetrische context vóór en na de match
ripgrep is sneller, vooral bij grote codebases
negeert automatisch bestanden uit .gitignore
grep is universeler beschikbaar, maar mist veel ingebouwde functies
beide zijn geoptimaliseerd voor code
ripgrep is meestal sneller en biedt betere ondersteuning voor globbing en regex
Bij geheugenproblemen:
rg "search-term" --max-filesize 10M
Hiermee worden alleen bestanden kleiner dan 10 MB doorzocht.
Maak een bestand ~/.ripgreprc aan:
--glob '!*.log'
--glob '!*.tmp'
Hiermee worden .log- en .tmp-bestanden standaard uitgesloten.
rg --version
Deze tutorial behandelde de installatie van ripgrep, basiscommando’s, geavanceerde functies en vergelijkingen met andere tools. Dankzij zijn snelheid en efficiëntie is ripgrep een uitstekende keuze voor ontwikkelaars die hun zoekmogelijkheden in grote codebases willen verbeteren