Questo articolo fa parte della nostra serie Trucchi e Suggerimenti di Linux, in questo articolo copriremo alcune nozioni di base sull’uso del comando cat (il comando più frequentemente usato in Linux) e tac (il contrario del comando cat – stampa i file in ordine inverso) con alcuni esempi pratici.
Leggi Anche: 13 Esempi Utili del Comando ‘cat’ in Linux
Utilizzo di Base del Comando Cat in Linux
Il comando cat, acronimo di Concatenate, è uno dei comandi più utilizzati nei sistemi *nix. L’uso più basilare del comando è leggere i file e visualizzarli su stdout, cioè mostrare il contenuto dei file sul terminale.
# cat file.txt

Un altro utilizzo del comando cat è leggere o combinare diversi file insieme e inviare l’output a un monitor come illustrato negli esempi sottostanti.
# cat file1.txt file2.txt file3.txt

Il comando può anche essere utilizzato per concatenare (unire) più file in un unico file utilizzando l’operatore di redirezione ">"
di Linux.
# cat file1.txt file2.txt file3.txt > file-all.txt

Utilizzando l’operatore di redirezione per l’appendice è possibile aggiungere il contenuto di un nuovo file in fondo al file-all.txt
con la seguente sintassi.
# cat file4.txt >> file-all.txt

Il comando cat può essere utilizzato per copiare il contenuto di un file in un nuovo file. Il nuovo file può essere rinominato arbitrariamente. Ad esempio, copia il file dall’attuale posizione alla directory /tmp/
.
# cat file1.txt > /tmp/file1.txt

Copia il file dalla posizione attuale alla directory /tmp/
e cambiane il nome.
# cat file1.txt > /tmp/newfile.cfg

A less usage of the cat command is to create a new file with the below syntax. When finished editing the file hit CTRL+D
to save and exit the new file.
# cat > new_file.txt

Per numerare tutte le righe di output di un file, comprese le righe vuote, utilizza l’opzione -n
.
# cat -n file-all.txt

Per visualizzare solo il numero di ciascuna riga non vuota, utilizza l’opzione -b
.
# cat -b file-all.txt

Vuoi saperne di più sul comando cat di Linux? allora leggi il nostro articolo su 13 Esempi Utili del Comando ‘cat’ in Linux.
Scopri Come Usare il Comando Tac in Linux
D’altra parte, un comando meno conosciuto e meno utilizzato nei sistemi *nix è il comando tac
. Tac è praticamente la versione inversa del comando cat
(anche scritto al contrario) che stampa ciascuna riga di un file partendo dall’ultima riga e finendo sulla prima riga sull’output standard della tua macchina.
# tac file-all.txt

Una delle opzioni più importanti del comando è rappresentata dall’opzione -s
, che separa i contenuti del file in base a una stringa o una parola chiave dal file.
# tac file-all.txt --separator "two"

Inoltre, l’utilizzo più importante del comando tac è che può fornire un grande aiuto per il debug dei file di log, invertendo l’ordine cronologico dei contenuti del log.
$ tac /var/log/auth.log Or to display the last lines $ tail /var/log/auth.log | tac
Output di Esempio
tecmint@tecmint ~ $ tac /var/log/auth.log pr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root ....
tecmint@tecmint ~ $ tail /var/log/auth.log | tac Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session closed for user root Apr 6 16:09:01 tecmint CRON[17714]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session closed for user root Apr 6 16:05:01 tecmint CRON[17583]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:05:01 tecmint CRON[17582]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session closed for user root Apr 6 16:00:01 tecmint CRON[17434]: pam_unix(cron:session): session opened for user root by (uid=0) Apr 6 15:55:02 tecmint CRON[17194]: pam_unix(cron:session): session closed for user root Apr 6 15:55:01 tecmint CRON[17195]: pam_unix(cron:session): session closed for user root ...
Come il comando cat
, anche il comando tac
svolge un ottimo lavoro nel manipolare file di testo, ma dovrebbe essere evitato con altri tipi di file, specialmente file binari o file in cui la prima riga indica il programma che lo eseguirà.
Source:
https://www.tecmint.com/learn-linux-cat-command-and-tac-command/