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!