Come utilizzare i comandi "cat" e "tac" con esempi in Linux
Questo articolo fa parte della nostra serie Linux Tricks and Tips, in questo articolo tratteremo alcuni usi di base del comando cat (comando usato più frequentemente in Linux) e tac ( reverse of cat command – stampa i file in ordine inverso) con alcuni esempi pratici.
Leggi anche: 13 utili esempi di comandi "cat" in Linux
Utilizzo di base di Cat Command in Linux
Il comando Cat, acronimo di Concatenate, è uno dei comandi più utilizzati nei sistemi *nix. L'utilizzo più elementare del comando è leggere i file e visualizzarli su stdout, ovvero visualizzare il contenuto dei file sul tuo terminale.
cat file.txt
Un altro utilizzo del comando cat è leggere o combinare più file insieme e inviare l'output a un monitor come illustrato negli esempi seguenti.
cat file1.txt file2.txt file3.txt
Il comando può essere utilizzato anche per concatenare (unire) più file in un unico file utilizzando l'operatore di reindirizzamento Linux “> ”
.
cat file1.txt file2.txt file3.txt > file-all.txt
Utilizzando il reindirizzamento append puoi 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 del file in un nuovo file. Il nuovo file può essere rinominato arbitrariamente. Ad esempio, copia il file dalla posizione corrente nella directory /tmp/
.
cat file1.txt > /tmp/file1.txt
Copia il file dalla posizione corrente nella directory /tmp/
e modificane il nome.
cat file1.txt > /tmp/newfile.cfg
Un utilizzo minore del comando cat consiste nel creare un nuovo file con la sintassi seguente. Una volta terminata la modifica del file, premi CTRL+D
per salvare e uscire dal nuovo file.
cat > new_file.txt
Per numerare tutte le righe di output di un file, comprese le righe vuote, utilizzare l'opzione -n
.
cat -n file-all.txt
Per visualizzare solo il numero di ciascuna riga non vuota utilizzare l'opzione -b
.
cat -b file-all.txt
Vuoi saperne di più sul comando cat di Linux? quindi leggi il nostro articolo su 13 utili esempi di comandi "cat" in Linux.
Scopri come utilizzare 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 ogni riga di un file iniziando dalla riga inferiore e finendo sulla riga superiore secondo lo standard della tua macchina produzione.
tac file-all.txt
Una delle opzioni più importanti del comando è rappresentata dallo switch -s
, che separa il contenuto del file in base ad una stringa o ad una parola chiave dal file.
tac file-all.txt --separator "two"
Successivamente, l'utilizzo più importante del comando tac è che può fornire un grande aiuto per eseguire il debug dei file di registro, invertendo l'ordine cronologico dei contenuti del registro.
tac /var/log/auth.log
Or to display the last lines
tail /var/log/auth.log | tac
Uscita del campione
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
, tac
fa un ottimo lavoro nella manipolazione dei file di testo, ma dovrebbe essere evitato in altri tipi di file, in particolare file binari o file in cui la prima riga denota il programma che lo eseguirà.