ripgrep (spesso abbreviato in rg) è uno strumento moderno, veloce e potente da riga di comando che consente di cercare ricorsivamente nei file, in modo simile a grep, ma con maggiore efficienza e funzionalità aggiuntive. È progettato per esplorare repository di codice ignorando automaticamente file e directory specificati in .gitignore o file di configurazione simili. Questo rende ripgrep estremamente efficace per gli sviluppatori che lavorano su grandi codebase.
Questo tutorial copre:
Installazione di ripgrep su Linux
Sintassi di base e comandi principali
Casi d’uso comuni ed esempi
Funzionalità avanzate
Confronto con grep e altri strumenti
Risoluzione dei problemi e best practice
Alla fine, avrai una solida comprensione di come usare ripgrep in modo efficace.
L’installazione di ripgrep è semplice sulla maggior parte delle distribuzioni Linux. Puoi installarlo tramite il gestore di pacchetti o scaricando il binario.
Aggiorna l’elenco dei pacchetti:
sudo apt update
Installa ripgrep:
sudo apt install ripgrep fzf
La sintassi è simile a grep, ma ripgrep offre prestazioni migliori e funzionalità più avanzate già pronte all’uso.
rg [OPZIONI] PATTERN [PERCORSO]
Dove:
PATTERN è la stringa o espressione regolare da cercare.
[PERCORSO] è opzionale e indica la directory o il file in cui cercare. Se omesso, ripgrep cerca nella directory corrente.
Per cercare solo nei file .py:
rg "function" *.py
Usando direttamente *.py la ricerca non è ricorsiva. Per cercare in tutte le sottodirectory filtrando per tipo:
rg --type py "function"
ripgrep supporta le regex:
rg '\d{4}-\d{2}-\d{2}'
Questo cerca date nel formato YYYY-MM-DD.
rg -i "error"
Trova error, Error o ERROR.
rg --type py "import"
Ad esempio node_modules:
rg "config" --glob '!node_modules/*'
ripgrep può cercare nei file compressi senza estrarli prima (.gzip, .xz, .lz4, .bzip2, .lzma, .zstd).
Esempio:
rg 'ERST' -z demo.gz
ripgrep consente di visualizzare il contesto attorno alle righe corrispondenti.
-B [numero] → righe prima
-A [numero] → righe dopo
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 offre maggiore controllo
-C 2 mostra lo stesso numero di righe prima e dopo
ripgrep è più veloce, soprattutto su grandi progetti
ignora automaticamente .gitignore
grep è più diffuso ma con meno funzionalità integrate
entrambi ottimizzati per codebase
ripgrep è generalmente più rapido e gestisce meglio glob e regex
rg "search-term" --max-filesize 10M
Limita la ricerca ai file sotto i 10 MB.
Crea ~/.ripgreprc:
--glob '!*.log'
--glob '!*.tmp'
Questo escluderà .log e .tmp da tutte le ricerche.
rg --version
Questo tutorial ha coperto l’installazione di ripgrep, i comandi di base, le funzionalità avanzate e il confronto con altri strumenti. Grazie alla sua velocità ed efficienza, ripgrep è una scelta eccellente per gli sviluppatori che vogliono migliorare le capacità di ricerca in grandi codebase.