Nel seguente articolo ne vedremo alcuni strumenti della riga di comando utilizzati per trovare stringhe o modelli corrispondenti all'interno di file di testo. Questi strumenti sono generalmente usati insieme alle espressioni regolari, abbreviate come REGEX, che sono stringhe univoche per descrivere un modello di ricerca.
Le espressioni regolari sono modelli utilizzati per trovare una certa combinazione di caratteri all'interno di una stringa di testo. Le espressioni regolari forniscono un modo molto flessibile per cercare o riconoscere stringhe di testo. Sebbene nelle righe seguenti non vedremo espressioni regolari, useremo modelli o stringhe.
Cerca stringhe o pattern dal terminale
comando Grep
Grep è l'acronimo di Stampa di espressioni regolari globali. Questo è un potente strumento da riga di comando utile quando si cerca una stringa o un modello specifico in un file. con grep potremo utilizzare una vasta gamma di funzioni, come quelle che un collega ci ha spiegato tempo fa in questo blog.
La sintassi per l'utilizzo del comando grep è piuttosto semplice:
grep PATRON [RUTA AL ARCHIVO]
Ad esempio, per cercare la stringa 'Ubuntu'in un file che in questo esempio chiameremo text.txt, senza tenere conto della distinzione tra maiuscolo e minuscolo, in un terminale (Ctrl + Alt + T) dovremo solo eseguire il comando:
grep -i Ubuntu texto.txt
comando sed
La sete è l'abbreviazione di Editor di flusso. È un altro strumento utile per il terminale con il quale possiamo manipolare il testo in un file. Sed cerca, filtra e sostituisce le stringhe in un dato file.
Il comando sed per impostazione predefinita stampa l'output in formato STDOUT (Uscita standard). Ciò implica che il risultato dell'esecuzione viene stampato sul terminale invece di essere salvato in un file.
Il comando Sed può essere utilizzato come segue:
sed -OPCIONES COMANDO [RUTA AL ARCHIVO]
Ad esempio, per sostituire tutte le occorrenze di "Linux"in un testo di"Gnu Linux', il comando da usare sarebbe il seguente:
sed 's/Linux/GnuLinux/g' texto.txt
Se quello che stiamo cercando è reindirizza l'output su un file invece di stamparlo sul terminale, useremo il segno di reindirizzamento come segue:
sed 's/Linux/GnuLinux/g' texto.txt > salida.txt
L'output del comando viene salvato nel file output.txt invece di essere stampato sullo schermo.
Per vedere più opzioni, puoi consultare le pagine man:
man sed
ack
Ack è un veloce strumento a riga di comando scritto in Perl. È considerato un sostituto amichevole per l'utilità grep, che genera anche risultati in modo visivamente accattivante.
a installa ack nel nostro sistema dovremo eseguire nel terminale (Ctrl + Alt + T):
sudo apt install ack
Il comando Ack cerca nel file o nella directory le righe che contengono la corrispondenza per i criteri di ricerca. Quindi evidenzia la stringa corrispondente. Questo strumento ha la capacità di distinguere i file in base alle loro estensioni.
La sintassi del comando Ack sarebbe simile alla seguente
ack [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Ad esempio, per cercare il termine Linux in un file, dovremmo eseguire:
ack Linux texto.txt
Lo strumento di ricerca è piuttosto intelligente e se l'utente non fornisce alcun file o directory, cerca il modello di ricerca nella directory e nelle sottodirectory correnti.
Nell'esempio seguente non viene fornito alcun file o directory. Ack rileva automaticamente il file disponibile nella directory e cerca il modello corrispondente:
ack Linux
ripgrep
ripgrep è un'utilità multipiattaforma per la ricerca di modelli di espressioni regolari. È più veloce di tutti gli strumenti di ricerca sopra menzionati e cerca nelle directory in modo ricorsivo i modelli di corrispondenza. Consente inoltre di cercare tipi di file specifici. Per impostazione predefinita, ripgrep salterà binari e file / directory nascosti.
a installa ripgrep sul sistema, tutto ciò che devi fare è eseguire il seguente comando nel terminale (Ctrl + Alt + T):
sudo apt install ripgrep
La sintassi per l'utilizzo di ripgrep è piuttosto semplice:
rg [OPCIONES] PATRÓN [RUTA AL ARCHIVO]
Se volessimo cercare la catena 'Linux'nei file che si trovano all'interno della directory corrente, dovremo solo eseguire il comando:
rg Linux
Per vedere più opzioni, gli utenti possono utilizzare pagine man:
man rg
Cercatore d'argento
a installa questo strumentoIn Ubuntu dovremo solo aprire un terminale (Ctrl + Alt + T) e scrivere il comando:
sudo apt install silversearcher-ag
Silver Searcher è uno strumento di ricerca open source multipiattaforma simile ad ack ma con un'enfasi sulla velocità. Rende facile trovare una stringa specifica all'interno dei file nel più breve tempo possibile. La sintassi da utilizzare sarebbe:
ag OPCIONES PATRÓN_DE_BÚSQUEDA /ruta/al/archivo
Ad esempio, per cercare "Linux'nel file text.txt, dovremmo scrivere nel terminale (Ctrl + Alt + T):
ag Linux texto.txt
Per vedere più opzioni possiamo consultare il pagine man:
man ag
Questi sono solo alcuni degli strumenti da riga di comando più comunemente usati per cercare, filtrare e manipolare il testo in Linux.