Come trovare il testo nei file in Linux

Come trovare il testo nei file in Linux

Per un amministratore di sistema, lavorare con i file di testo è un fenomeno comune. Forse è necessario trovare una sezione specifica da pile di file di registro per risolvere qualcosa? Oppure, è necessario trovare il documento che contenga rapidamente informazioni essenziali?

Nel caso di Linux, ci sono numerosi metodi per trovare testi nei file. È possibile utilizzare sia gli strumenti integrati che le app di terze parti. Scopri come trovare testi nei file in Linux.

Trovare il testo nei file

A seconda del numero di file su cui è necessario eseguire una ricerca, ci sono due modi per eseguire la ricerca di testo: automatizzato o manuale. Se devi lavorare con un paio di file di testo, la ricerca manuale è più adatta. Tuttavia, se ci sono centinaia di file di testo, la ricerca automatizzata è la più efficiente.

Per la ricerca automatizzata, useremo Grep. Grep viene preinstallato su qualsiasi distro Linux. Per quanto riguarda la ricerca manuale, qualsiasi editor di testo moderno farà il lavoro.

Trova il testo nei file usando Grep

In Linux, Grep è lo strumento predefinito per la ricerca di testi. Il suo nome deriva dal comando ED g/re/p che rappresenta “a livello globale cerca un'espressione regolare e le linee di corrispondenza di stampa."È disponibile su qualsiasi moderna distribuzione di Linux.

Grep è uno strumento di comando. La sua struttura di comando è la seguente.

$ grep

Come suggerisce il nome di grep, il modello da cercare viene descritto usando un'espressione regolare. L'espressione regolare è un tipo speciale di stringa che descrive uno schema da abbinare, individuare e gestire. Per saperne di più su grep e espressione regolare, dai un'occhiata a Grep ed EGEP con espressione regolare.

A fini dimostrativi, prendi un file di testo di esempio. In questo esempio, scarica la licenza GENU GENERAL GENERAL V3.0 File di testo.

Ricerca di base

Il modo fondamentale di usare Grep è cercare una stringa di base.

Dai un'occhiata al seguente comando Grep. Cercherà la parola "GNU" nel file di testo.

$ grep "gnu" GPL-3.0.TXT

Per mostrare il numero di riga, utilizzare il flag "-n".

$ grep -n "gnu" GPL -3.0.TXT

Per eseguire una ricerca insensibile al caso utilizzando GREP, utilizzare il flag "-i".

$ grep -ni “gnu” GPL -3.0.TXT

Potresti non voler vedere le partite di ricerca ma solo il nome del file in cui è avvenuta la partita in alcune situazioni. Per stampare solo il nome file, utilizzare il flag "-l". Qui, l'asterisco indica l'uso di tutti i file di testo nella directory corrente.

$ grep -l "gnu" *

Possiamo anche tubolare l'uscita di altri comandi a Grep.

$ CAT GPL-3.0.txt | grep -n "gnu"

Espressione regolare

Regex offre un modo intelligente di mettere a punto la ricerca. Ha le sue regole. Tuttavia, diverse applicazioni e linguaggi di programmazione implementano un'espressione regolare in modo diverso. Ecco un paio di esempi che puoi usare con Grep.

Per definire che la stringa deve essere trovata all'avvio di una riga, utilizzare il simbolo di caret (^).

$ grep -n “^gnu” GPL -3.0.TXT

Per definire che la stringa deve essere trovata alla fine di una riga, utilizzare il segno del dollaro ($).

$ grep -n "a $" GPL -3.0.TXT

Per descrivere che può esserci un carattere in una determinata posizione del modello, usa il carattere del periodo (.). Ad esempio, l'espressione “G.U "è valido se c'è qualche carattere tra" G "e" U ".

$ grep -n “G.U ”GPL-3.0.TXT

Per descrivere che può esserci un sottoinsieme di caratteri in una particolare posizione del modello, usa le staffe ([]). Ad esempio, l'espressione "t [wo] o" dice che la partita è valida solo per "due" e "troppo".

$ grep -n “t [wo] o” GPL -3.0.TXT

Espressione regolare estesa

Come suggerisce il nome, un'espressione regolare estesa può fare cose più complesse delle espressioni regolari di base. Per utilizzare un'espressione regolare estesa con Grep, devi usare il flag "-e".

$ grep -ne

Per cercare due stringhe diverse, utilizzare gli operatori (|).

$ grep -ne “gnu | generale | licenza” GPL -3.0.TXT

Trovare il testo nei file

Ora arriva la parte principale. Invece di dire manualmente a Grep il file su cui eseguire la ricerca, Grep può farlo automaticamente. Nel comando seguente, Grep utilizzerà tutti i file di testo disponibili nella directory corrente per la ricerca del modello.

$ grep *

Se si desidera GREP per eseguire la ricerca su una directory diversa, è necessario specificare la posizione.

$ grep

Se ci sono cartelle, Grep non le esplora per impostazione predefinita. Per dire a Grep di cercare in modo ricorsivo, usa il flag "-r".

$ grep -nr

GREP GUI

Se preferisci lavorare con la GUI ma vuoi comunque goderti le funzionalità di Grep, dai un'occhiata a SearchMonkey. È una soluzione front-end per grep. Il pacchetto è disponibile su quasi tutte le principali distro Linux.

Trova il testo nei file usando nano

Gnu Nano è un editor di testo semplice e potente che viene fornito con qualsiasi Distro Linux. Ha funzionalità integrate per cercare il testo in un file di testo.

Nota che in questo metodo è necessario aprire il file di testo e cercare manualmente. È fattibile se c'è solo una manciata di file di testo con cui lavorare. Se c'è di più, l'utilizzo di Grep è la scelta più ottimale.

Apri il file di testo in nano.

$ nano

Per cercare una corrispondenza di stringa, premere "Ctrl + W". Dopo aver digitato la stringa per cercare, premere "Invio".

Trova il testo nei file usando VIM

Vim è un editor di testo ben noto e famoso. È l'equivalente della riga di comando di un moderno editor di testo. VIM viene fornito con numerose funzionalità avanzate come plugin, macro, complezione automatica, filtri, ecc.

Simile a Nano, Vim funziona con un singolo file alla volta. Se hai più file di testo, l'utilizzo di Grep è il modo più ottimale per andare.

Per cercare in un file di testo, prima, aprilo in VIM.

$ vim

Immettere il seguente comando VIM e premere "Invio".

$:/

Trova il testo nei file utilizzando Gnome Text Editor

L'editor di testo gnome è l'editor di testo fornito con il desktop gnome. È un editor di testo semplicistico con tutte le funzionalità di base che ti aspetteresti. È una bella alternativa agli editori di testo della riga di comando.

Simile a Nano e Vim, la stessa cautela si applica a questo metodo. Se il numero di file di testo è grande, è meglio rimanere con Grep.

Apri il file di testo nell'editor di testo. Premere "Ctrl + F" per visualizzare la barra di ricerca.

Trova il testo nei file utilizzando il codice VS

Visual Studio Code è un potente editor di testo con tonnellate di funzionalità. È ottimizzato per i programmatori da usare come se fosse un IDE a tutti gli effetti. È disponibile su quasi tutte le principali distro Linux.

Installa il pacchetto Snap del codice Visual Studio.

$ sudo code di installazione snap -Classic

Apri il file di testo in codice vs. Premere "Ctrl + F" per iniziare a cercare.

Pensieri finali

Esistono numerosi modi per cercare il testo nei file. È un compito facile da padroneggiare. Si consiglia vivamente di padroneggiare il comando GREP perché offre il massimo valore in termini di efficienza e facilità d'uso.

Se preferisci GUI, ci sono numerosi redattori di testo tra cui scegliere. Qualsiasi editor di testo moderno fornirà l'opzione di ricerca di testo.

Felice calcolo!