fb-pixel

Come visualizzare e combinare i file con il comando cat su Linux

Se vuoi visualizzare un file di testo da terminale o modificare il contenuto di uno o più file anche combinandoli tra loro, allora devi conoscere il comando cat di Linux.

Per imparare a usare al meglio il comando cat faremo una carrellata dei suoi utilizzi principali attraverso esempi pratici in cui ti mostrerò di volta in volta l’output.

Iniziamo!

Sintassi del comando cat

Per le operazioni sui file, il comando cat è tra quelli fondamentali da conoscere.

La sintassi di base di questo comando è la seguente:

cat [opzioni] nome-file

Abbiamo visto che con i comandi cp e mv possiamo creare copie dei file e spostarli. In questo caso, invece, spostiamo la nostra attenzione sul contenuto dei file.

La funzione di base del comando cat (concatenate) è quella di mostrare il contenuto di un file.

La sintassi da usare per mostrare il contenuto di un file è questa:

cat percorso/nome-file-.txt

Come vedremo in questa guida pratica, questo stesso comando si può usare anche per altri scopi tra cui unire più file o aggiungere del contenuto a un file esistente.

Passiamo ai casi d’uso principali per capire come sfruttare il comando cat.

Casi d’uso principali del comando cat

Il comando cat si usa per visualizzare il contenuto di uno o più file o per fare copie del contenuto da un file ad un altro, combinando ad esempio più documenti tra loro.

Per prima cosa vediamo le operazioni di base che possiamo fare con questo comando, più avanti nella guida passeremo all’utilizzo delle opzioni.

Come mostrare il contenuto di un file

Usando il comando cat possiamo visualizzare il contenuto di un singolo file nel terminale.

Il comando da usare è questo:

cat nome-file

Nel nostro esempio per mostrare il contenuto del file “appunti.txt” daremo il comando:

cat appunti.txt

Qui nell’esempio puoi vedere che il contenuto del file di testo viene mostrato direttamente nel terminale:

Usare Comando Cat Per Visualizzare Contenuto File

Nota che in questo caso sto richiamando un file che è presente nella cartella corrente, se voglio visualizzare il contenuto di un file salvato in un’altra posizione, dovrò inserire tutto il percorso del file.

Come mostrare il contenuto di più file

Possiamo usare il comando cat anche per mostrare il contenuto di più file usando il comando una sola volta.

Ci basta digitare il comando seguito dai nomi dei file, in questo modo:

cat nome-file.txt nome-altro-file.txt

Nel nostro esempio ho usato il comando per mostrare il contenuto di due file:

cat appunti.txt documento.txt

Come risultato mi è stato mostrato il contenuto testuale di entrambi i file.

Se noti bene guardando l’esempio, usando questo comando non riusciamo a capire dove finisce un file e inizia l’altro.

In questo caso ho evidenziato in rosso il contenuto del file “appunti” e in blu quello di “documento”:

Usare Comando Cat Per Visualizzare Contenuto Di Piu File

Come mostrare il contenuto di tutti i file presenti in una cartella

In maniera simile a quanto abbiamo appena visto, possiamo usare il comando cat per visualizzare file multipli che corrispondono a determinate caratteristiche, ad esempio che hanno una specifica estensione.

Ad esempio possiamo vedere il contenuto di tutti i file all’interno di una cartella che hanno l’estensione txt.

Per farlo possiamo sfruttare il wildcard, così:

cat *.txt

In questo modo ci verranno mostrati i contenuti di tutti i file con estensione txt.

Nel mio esempio ho usato il comando ls per sapere quali fossero i file nella cartella, poi con il comando cat ho visualizzato il contenuto.

Il risultato è il contenuto di tre file:

  • appunti.txt > le prime due righe di testo;
  • documento.txt > la terza riga;
  • ricerca.txt > l’ultima riga.
Usare Cat Per Vedere File Dentro Cartella

Anche qui, come dicevamo prima, non possiamo distinguere direttamente da terminale a quale file appartenga il contenuto.

Come unire più file esistenti in un nuovo file

Una delle funzioni più interessanti del comando concatenate è l’unione dei file.

Partendo da due file possiamo copiare il loro contenuto in un terzo file, così:

cat file-1 file-2 > file-unito

Nel nostro esempio voglio combinare due file in un nuovo file, con questo comando:

cat roma.txt milano.txt > citta-italia.txt
Combinare File Con Cat

Il risultato è che viene creato un nuovo file “citta-italia.txt” al cui interno viene copiato il contenuto di “roma.txt” seguito da quello di “milano.txt”.

Come copiare il contenuto di un file alla fine di un altro file

Nell’esempio precedente abbiamo usato cat per creare un nuovo file dall’unione di due file già esistenti.

Possiamo usare cat anche per manipolare file già esistenti e copiare il contenuto del primo file alla fine del secondo file. In questo caso nota che il contenuto viene aggiunto alla fine e non va a sovrascrivere quello esistente.

Il comando si usa così:

cat nome-file >> nome-file-destinazione

Nel nostro esempio voglio aggiungere il contenuto del file “genova.txt” alla fine del file già creato prima “citta-italia”, per farlo uso il comando cat così:

cat genova.txt >> citta-italia.txt
Cat Per Unire Contenuto File Esistente

Come risultato, il contenuto del file “genova” viene aggiunto alla fine del file “citta-italia”.

Come aggiungere testo a un file con cat

Il comando cat nasce per manipolare il contenuto dei file, questo significa che possiamo anche usarlo per aggiungere nuove porzioni di testo a un qualsiasi file già esistente direttamente da terminale.

La sintassi da usare è questa:

cat >> nome-file.txt 
testo da inserire nel file
  1. Per prima cosa dobbiamo usare il comando “cat >>” e specificare il nome del file, quindi dare Invio.
  2. Dopodiché possiamo digitare il testo da inserire, possiamo anche andare da capo come se stessimo scrivendo proprio nell’editor di testo.
  3. Per completare la modifica e salvare dobbiamo premere “CTRL+D”.

Qui sotto puoi vedere un esempio in cui ho aggiunto tre righe di testo al file “ricerca.txt”

Usare Cat Per Aggiungere Testo File

Come usare le opzioni del comando cat su Linux

Come tutti i comandi Linux, anche cat ha delle opzioni specifiche. In questo caso le opzioni ci aiutano a leggere meglio il contenuto dei file e a manipolarli.

Vediamo quali sono alcune delle opzioni più utili con degli esempi pratici che ci permettono di capire come usarle.

Mostrare i numeri di riga

Usando l’opzione -n in combinazione al comando cat possiamo visualizzare i numeri di riga dei file direttamente da terminale.

L’opzione si usa così:

cat -n nome-file

Nel nostro esempio:

cat -n ricerca.txt

Come vedi in questa schermata accanto a ogni riga viene mostrato il numero.

Comando Cat Opzione Numeri Riga

Come mostrare la tabulazione nei file

Se stiamo accedendo da terminale a un file e vogliamo mostrare la tabulazione, possiamo usare l’opzione -T.

cat -T nome-file

Con questa opzione le tabulazioni verranno riportate nel terminale in questo modo: “^I”.

Usare Cat Mostrare Tabulazione

Possiamo anche usare l’opzione “-A” che combina le tre opzioni -vET:

  • v serve a mostrare i caratteri non stampabili;
  • E ci permette di distinguere la fine delle righe aggiungendo $;
  • T ci permette di mostrare la tabulazione con “^I”.

Ecco un esempio:

cat -A nomefile.txt
Usare Cat Con Opzione A

Come evitare di mostrare le righe vuote multiple in un file

Quando visualizziamo un file da terminale con cat, vedremo anche tutte le righe vuote se presenti. Con l’opzione -s possiamo eliminare le righe vuote ripetute.

cat -s nome-file

Nel nostro esempio il file appunti conteneva diverse righe vuote consecutive e con l’opzione s le abbiamo eliminate.

cat -s appunti.txt

Ecco infatti il risultato:

Eliminare Righe Vuote Con Cat

Nota che con questo comando le righe multiple vuote non vengono mostrate in modo da permetterci di visualizzare il file in maniera più compatta. Il file, però, non viene modificato realmente: le righe multiple continuano a restare nel file, ma non vengono mostrate proprio grazie all’opzione.

Come evidenziare la fine delle righe

Per alcuni file testuali, può essere utile riuscire a distinguere la fine di ogni riga. Per farlo possiamo usare l’opzione -E:

cat -E nome-file

Per esempio:

cat -E citta-italia.txt

Nel nostro esempio abbiamo un file composto da più righe e usando il comando cat con l’opzione -E, la fine di ogni riga viene messa in evidenza grazie all’aggiunta del simbolo “$“.

Cat Indicare Fine Riga

Come usare cat in combinazione con altri comandi

Il comando cat su Linux si può usare insieme ad altri comandi per ampliare le operazioni sui file.

Vediamo alcuni esempi pratici.

Nota che si tratta di esempi semplici creati solo per farti capire come combinare i comandi insieme a cat. Non a caso si parla spesso dell’uso inutile di cat e c’è anche un premio “useless use of cat award” creato scherzosamente proprio per celebrare gli usi più inutili del comando specie se utilizzato per operazioni un singolo file.

Come mostrare il contenuto di un file al contrario

Abbiamo visto come usare cat per visualizzare nel terminale il contenuto di un file.

Possiamo anche usare il comando tac per visualizzare il contenuto di un file dall’ultima riga verso la prima.

cat tac nome-file

Ecco un esempio con un file di testo con un elenco di nomi: l’elenco viene mostrato nell’ordine inverso se usiamo tac invece che cat.

Comando Cat Comando Tac

Usare cat con more e less

Se vogliamo visualizzare file con molto contenuto, possiamo utilizzare il comando more insieme a cat per suddividere il contenuto del file in pagine e poter passare da una pagina all’altra.

Per farlo dobbiamo usare i comandi cat e more e combinarli con la pipe |.

Vediamo un esempio:

cat nome-file | more

In questo esempio, il file è lungo e viene suddiviso in più pagine.

Usare Cat Con More

Dopo aver dato il comando, possiamo scorrere il file in due modi:

  • usiamo Invio per avanzare di una riga alla volta;
  • usiamo Spazio per passare da una pagina alla successiva.

Per uscire dal comando more, ci basta premere “Q“.

Il comando more è utile per scorrere un file partendo dall’inizio e avanzando riga per riga o pagina per pagina. Se, invece, vogliamo navigare in un file in entrambi i sensi, dall’inizio verso la fine e viceversa, è più comodo usare il comando less.

In questo caso in combinazione con cat si usa così:

cat nome-file.txt | less

Dopodiché possiamo spostarci:

  • avanti di un rigo con freccia verso il basso o invio;
  • indietro di un rigo con freccia verso l’alto;
  • avanti di una pagina con spazio o “Pagina su”;
  • indietro di una pagina con “Pagina giù”.

Mostrare il testo in ordine alfabetico con sort

Possiamo combinare cat e sort per mostrare il contenuto di un file in ordine alfabetico.

cat nome-file | sort

In questo esempio avevo un elenco di nomi in un file, con il primo comando (cat) ho mostrato il contenuto originale del file. Con il secondo comando aggiungendo sort li ho ordinati:

cat iscritti.txt | sort

Il risultato è stato l’elenco mostrato in ordine alfabetico grazie a sort.

Usare Cat Con Sort

Mostrare solo alcune righe di un file con sed

Se usiamo cat insieme al comando sed possiamo scegliere di mostrare solo le righe che vogliamo di un file di testo.

Possiamo usare questo comando per mostrare un intervallo di righe da noi scelte, in questo modo:

cat comandi.txt | sed -n '20,36p'

Qui l’opzione -n ci permette di mostrare solo le righe indicate e con ‘20,36p’ stiamo indicando l’intervallo di righe da mostrare.

Comando Cat Con Sed

Conclusioni

Il comando cat è tra i principali di Linux, ci permette di verificare rapidamente il contenuto di un file, ma soprattutto di combinare file tra loro o fare rapide modifiche aggiungendo del testo.

La vera forza di questo comando emerge quando viene usato per elaborare più file e in combinazione alle opzioni come abbiamo visto con svariati esempi.

Avevi mai usato il comando cat? Parliamone nei commenti.


Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Commenti

Lascia un commento

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