Come installare lo strumento ripgrep su Linux
Ripgrep è uno strumento di ricerca orientato alla riga che combina l’utilità di Silver Search e la velocità di GNU grep. Funziona cercando in modo ricorsivo il percorso della directory corrente per un pattern regex ignorando i file nascosti e i binari per impostazione predefinita. Attualmente è supportato su Windows, Mac OS e Linux, con download binari disponibili dopo ogni nuovo pubblicazione.
Perché usare ripgrep?
È più veloce di grep, awk e sed. Ignora binari e file nascosti per impostazione predefinita. Come grep, può cercare determinati tipi di file o ignorarne esplicitamente altri. Supporta nativamente codifiche di testo diverse dal supporto UTF e Unicode. La velocità di Ripgrep deriva dal motore regex di Rust che è stato costruito utilizzando automi finiti, SIMD e altre ottimizzazioni letterali aggressive per tenere conto della ricerca rapida. Supporta anche la ricerca mappata in memoria con l’uso di buffer intermedi, rendendolo adatto a singoli file e directory di grandi dimensioni.
Come installare Ripgrep
Il nome binario per ripgrep è pr. I binari di Linux sono eseguibili statici, mentre i binari di Windows sono creati con MinGW (GNU) o Microsoft Visual C++ (MSVC).
SU Homebrew per Mac OS X puoi installarlo da homebrew-core come segue:
$ brew install ripgrep
oppure puoi installare un binario ruggine compilato di notte (incluso SIMD e tutte le ottimizzazioni) usando un tocco personalizzato:
$ brew tap burntsushi/ripgrep https://github.com/BurntSushi/ripgrep.git
$ brew install burntsushi/ripgrep/ripgrep-bin
Se sei un utente Windows Chocolatey, puoi installare da resoconto ufficiale.
$ choco install ripgrep
Se sei un ArcoLinux user quindi puoi installare da repository ufficiali.
$ pacman -S ripgrep
Se sei un Gentoo utente, è possibile installare da resoconto ufficiale.
$ emerge ripgrep
Se sei un Federa 24+ utente, è possibile installare da copra.
$ dnf copr enable carlgeorge/ripgrep
$ dnf install ripgrep
Se sei un RHEL/CentOS 7 utente, è possibile installare da copra.
$ yum-config-manager --add-repo=https://copr.fedorainfracloud.org/coprs/carlgeorge/ripgrep/repo/epel-7/carlgeorge-ripgrep-epel-7.repo
$ yum install ripgrep
Se sei un Nix utente, è possibile installare da nixpkgs.
$ nix-env --install ripgrep #Or using the attribute name, which is also `ripgrep`
Se sei un programmatore ruggine, può essere installato con il carico. Nota che questo richiede che tu abbia Ruggine 1.12 o successiva installato.
$ cargo install ripgrep
ripgrep non è attualmente in altri repository di pacchetti. Vorrei cambiarlo.
Qualche esempio
Puoi cercare qualsiasi parola chiave in modo ricorsivo con il comando “rg ‘name'” come mostrato di seguito:
$ rg plugins
Questo esempio omette tutti i file nascosti ei file binari dal percorso di ricerca. che può essere dichiarato esplicitamente usando “– segnalati o “-uu flag” come mostrato di seguito.
$ rg -uu plugins # similar to `grep -r`
$ rg -uuu plugins # similar to `grep -a -r`
Cerca e sostituisci
Cerca modelli nel file specificato, con un modello per riga. Quando questo flag viene utilizzato o più volte o in combinazione con ‘-e/–regexp’ flag, vengono cercati tutti i modelli forniti. Le righe del modello vuote corrisponderanno a tutte le righe di input e la nuova riga non viene conteggiata come parte del modello. -r, –replaces
1) Trova il nome e il cognome e modificali utilizzando un modello regex che li assegna a due variabili e applica –sostituire bandiera
$ rg '([A-Z][a-z]+)s+([A-Z][a-z]+)' --replace '$2, $1' #'([A..Z]..)' -> regexp flag
Cerca modelli nei file con –File flag che stampa tutti i file che verrebbero cercati senza eseguire la ricerca. l –match-files flag mostra i percorsi con almeno una corrispondenza. Inoltre, per quanto riguarda la visualizzazione di file senza corrispondenza (–files-nessuna corrispondenza); stampa ogni file che verrebbe cercato senza eseguire effettivamente la ricerca. Questo è utile per determinare se un particolare file viene cercato o meno.
2) Cerca i file contenenti plugin nella directory dei documenti seguendo i collegamenti simbolici
$ rg -LF 'plugins' /home/localhost/Documents/ # -L flag for following symbolic links
Includere o escludere file/directory per la ricerca che corrispondono al dato glob con Sig o –globo bandiera. Questo ignora sempre qualsiasi altra logica di ignoranza. È possibile utilizzare più flag glob. Le regole globalizzate si adattano .gitignore globi. Fai precedere un globo da un ! escluderlo.
$ rg plug -g 'README.*'
$ rg plug -g '!*.min.js' #excludes glob
Conclusione
Ripgrep attualmente supera qualsiasi altro strumento di ricerca trovato sul sistema Linux in quanto cerca sia in singole directory che in file enormi, ed è migliore sia in termini di prestazioni che di correttezza. ripgrep fornisce anche il supporto unicode e funziona meglio degli strumenti attualmente disponibili come grep, awk, sed, trova e sarà un ulteriore vantaggio per qualsiasi utente Linux.