LINUX

Come installare lo strumento ripgrep su Linux

installare ripgrep 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 sostituire ogni corrispondenza con la stringa data durante la stampa dei risultati.

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.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close