Guida per principianti

Come trovare una stringa in un file su Linux

Come trovare una stringa in un file su Linux

A volte potrebbe essere necessario cercare una parola o una stringa particolare all'interno di un file. Per fare questo, quasi tutti gli editor di testo hanno qualche implementazione della GUI per aiutarti. Ma per gli utenti Linux, è molto più produttivo e conveniente eseguire queste ricerche dalla riga di comando.

In effetti, Linux ha un'utilità da riga di comando potente e conveniente: il comando grep per questo scopo. Usando questo, puoi cercare una stringa particolare non solo in un file ma in più file per una ricerca più completa.

Tuttavia, prima di poter utilizzare il comando grep, devi prima sapere come funziona e la sua sintassi. E così, per aiutarti, abbiamo messo insieme una guida dettagliata sull'uso del comando grep per aiutarti a trovare le stringhe in un file su Linux. Non solo, ma ti mostreremo anche come cercare stringhe nei file tramite l'editor di testo della riga di comando e l'editor di testo della GUI.

Nota: Per questo tutorial, abbiamo creato due file di testo demo: demofile.txt e demofile02.TXT. Useremo il comando grep per trovare le stringhe in questi file. Ecco uno sguardo al contenuto di entrambi questi file in modo da sapere come funzionano i comandi.

Contenuto del file demo.TXT:

Questo è un file demo che ho creato a scopo dimostrativo. Questo contiene un mucchio di parole per creare frasi che alla fine finiscono con un punto. Questo è per l'esempio grep.

Contenuto del demofile02.TXT:

Questo è un altro file demo che userò per questa dimostrazione. Questo è simile all'ultimo in quanto contiene tre righe con alcune parole. Questo secondo file aiuterà a fornire alcuni esempi diversificati.

Trovare stringhe in un file tramite la riga di comando (metodo GREP)

GREP è l'abbreviazione di Global Regular Expression Print. È "Globale" perché può cercare nell'intero sistema Linux. "Espressione regolare" è ciò che chiamiamo il modello di ricerca del testo che useremo con il comando. E "Stampa" significa che stamperà i risultati della ricerca non appena trova una corrispondenza basata sull'espressione regolare fornita provided.

Ora che hai un'idea di cosa sia il comando grep, vediamo come possiamo usarlo. Ecco la sintassi per usare il comando grep per trovare una stringa in un file:

$ grep corda nome del file

Dovrai sostituire l'espressione “stringa” con la “espressione regolare” che vuoi usare e il “nomefile” con il nome del file in cui vuoi cercare la stringa.

#1. Usare GREP per trovare una stringa in un file

Quindi, diciamo se vuoi cercare la parola "dimostrazione" nel file "demofile.txt", dovrai usare questo comando:

$ demofile dimostrativo grep.TXT

Che dà l'output:

Utilizzo di GREP per trovare una stringa in un file

Come puoi vedere, il comando recupera l'intera riga contenente la stringa fornita. Se la stringa specificata si trova in più righe, le stamperà tutte. Vediamo se funziona cercando la stringa “This” nel “demofile.txt" file.

$ grep Questo file demo.TXT

E l'output è:

grep fa distinzione tra maiuscole e minuscole

Nota come hai usato prima la stringa "this" e non ha stampato nulla. È solo quando inserisci "Questo" che ottieni una corrispondenza. Pertanto, dovresti ricordare che il comando grep fa distinzione tra maiuscole e minuscole.

Per ignorare il caso, dovrai invece inserire questo comando:

$ grep -i questo file demo.TXT

Come ignorare le maiuscole nel comando grep

Come puoi vedere ora, anche se la stringa fornita è "questo", il comando corrisponde a "Questo" e stampa quella risposta.

#2. Utilizzo di GREP per trovare la stessa stringa in più file

Per cercare in più file la stringa fornita, tutto ciò che devi fare è aggiungere il comando con tutti i nomi dei file.

Ecco un esempio. Qui stiamo cercando la stringa “words” nei file “demofile.txt" e "demofile02.TXT":

$ grep parole demofile.txt demofile02.TXT

E l'output è:

Utilizzo di GREP per trovare la stessa stringa in più file

Come puoi vedere, il comando grep non solo ti mostrerà il risultato corrispondente, ma etichetti anche convenientemente da quale file proviene.

#3. Utilizzo di GREP per trovare più stringhe in più file

Puoi anche usare grep per trovare più stringhe in uno o più file. Questa è la sintassi che dovrai usare:

$ grep -E 'schema1|pattern2|pattern3|… ' nomefile1 nomefile2 nomefile3… 

L'opzione -E che abbiamo inserito tratta il seguente modello come un'espressione regolare estesa, che ci consente di cercare più stringhe.

Ora usiamo quanto appreso per cercare le stringhe “file” e “words” nei due file: “demofile.txt" e "demofile02.TXT":

$ grep -E 'file|parola' demofile.txt demofile02.TXT

E l'output è:

Utilizzo di GREP per trovare più stringhe in più file

#4. Suggerimenti e trucchi per l'utilizzo del comando GREP per trovare le stringhe

Nonostante la sua semplicità generale, il comando grep è estremamente potente. Ecco alcuni modi in cui puoi utilizzare il comando grep per ricerche avanzate di stringhe.

Ad esempio, sapevi che puoi usare il comando grep con i caratteri jolly?? Consideriamo questo comando:

$ grep word demofile*

Che dà l'output:

grep e caratteri jolly

Come puoi vedere, il comando ha cercato e ora mostra i risultati per entrambi i file "demofile.txt" e "demofile02.TXT". Questo perché abbiamo usato il carattere jolly asterisco (*) usato per rappresentare una o più occorrenze di qualsiasi carattere.

Per ulteriori informazioni sui diversi tipi di caratteri jolly e su come utilizzarli, puoi consultare questa lettura: I caratteri jolly in Linux spiegati con 10 esempi.

Andando avanti, il comando grep supporta anche tonnellate di opzioni di comando. Ne abbiamo già visti due ormai:

Ci sono molte altre opzioni di comando grep come:

Tutto ciò di cui abbiamo discusso fino ad ora dovrebbe essere sufficiente per aiutarti a cercare stringhe nei file. Tuttavia, se vuoi padroneggiare il comando GREP, ti consigliamo di dare un'occhiata a questi due articoli:

Trova le stringhe in un file tramite la riga di comando (utilizzando gli editor di testo della riga di comando)

Il comando grep è un potente strumento che può aiutarti a eseguire ricerche avanzate per abbinare le stringhe con diversi file e directory sul tuo PC Linux. Tuttavia, se il file è già aperto in un editor di testo della riga di comando, non è necessario uscire dall'editor di file e utilizzare il comando grep.

In effetti, la maggior parte degli editor di testo da riga di comando è già dotata di una funzionalità di ricerca integrata.

Ora, è oltre lo scopo di questo tutorial coprire ogni singolo editor di testo da riga di comando e come trovare le stringhe in un file aperto in quell'editor di testo. Pertanto, esamineremo i due editor di testo da riga di comando più popolari che sei obbligato a utilizzare:

Come trovare una stringa di testo in nano?

Supponiamo che tu abbia il file aperto nell'editor di testo nano. In tal caso, tutto ciò che devi fare è premere Ctrl + W e troverai un nuovo prompt per digitare la stringa.

Una volta fatto, premi Invio e il cursore si fermerà sul primo carattere della prima occorrenza della stringa cercata. Puoi continuare a premere Invio per passare alle altre istanze di stringa, se presenti.

Come trovare una stringa di testo in nano

Come trovare una stringa di testo in vim?

Se stai usando l'editor di testo vim, puoi digitare :/ seguito dalla stringa che desideri cercare e quindi premere Invio. Simile a prima, atterrerà il cursore sulla prima occorrenza della stringa cercata. Anche qui puoi continuare a premere Invio per passare alle altre istanze della stringa.

Come trovare una stringa di testo in vim

Trova le stringhe in un file tramite la riga di comando (metodo GUI)

C'è anche un metodo GUI per trovare le stringhe in un file. In sostanza, è simile alla funzione "trova e sostituisci" che puoi vedere su Microsoft Word; tuttavia, varierà in base all'editor di testo della GUI che stai utilizzando.

Ora, come sai, ci sono centinaia di editor di testo e non è pratico trattarli tutti qui. Tuttavia, funzionano tutti allo stesso modo, quindi non avrai alcun problema a lavorare con gli altri una volta che sai come funziona uno di loro.

Per questo tutorial, utilizzeremo l'editor di testo predefinito fornito con Ubuntu, chiamato "Editor di testo"."

Come trovare la stringa usando gli editor di testo della GUI

Come puoi vedere dall'immagine, abbiamo aperto il demofile.txt sull'editor. Ora, facciamo clic sul menu a discesa, che rivela le opzioni per "Trova" e "Trova e sostituisci", che possiamo usare per trovare qualsiasi stringa nel file aperto.

Avvolgendo

Questo ci porta alla fine di questo breve tutorial sulla ricerca di stringhe in un file su Linux. Ci auguriamo che tu lo trovi utile e che ti abbia aiutato a diventare più produttivo nel modo in cui cerchi stringhe specifiche sul tuo sistema Linux.

Se hai domande, lasciaci un commento e saremo sicuri di aiutarti con le tue domande.

Se stai iniziando con Linux, non dimenticare di dare un'occhiata alla nostra serie Learn Linux. È pieno di tonnellate di fantastici tutorial, how-to e guide, progettati per principianti e utenti più esperti per aiutarti a diventare un vero utente esperto di Linux.

Come mostrare l'overlay OSD in app e giochi Linux a schermo intero
Giocare a giochi a schermo intero o utilizzare app in modalità a schermo intero senza distrazioni può tagliarti fuori dalle informazioni di sistema ri...
Le 5 migliori carte di acquisizione del gioco
Abbiamo tutti visto e amato i giochi in streaming su YouTube. PewDiePie, Jakesepticye e Markiplier sono solo alcuni dei migliori giocatori che hanno g...
Come sviluppare un gioco su Linux
Un decennio fa, non molti utenti Linux avrebbero previsto che il loro sistema operativo preferito un giorno sarebbe diventato una piattaforma di gioco...