Cum să utilizați comenzile „cat” și „tac” cu exemple în Linux


Acest articol face parte din seria noastră de trucuri și sfaturi pentru Linux, în acest articol vom acoperi câteva modalități de utilizare de bază a comenzii cat (comandă cea mai frecvent utilizată în Linux) și a tac ( reverse of cat command – tipăriți fișierele în ordine inversă) cu câteva exemple practice.

Citiți și: 13 exemple utile de comenzi „cat” în Linux

Utilizarea de bază a comenzii Cat în Linux

Comanda Cat, acronim pentru Concatenate, este una dintre cele mai utilizate comenzi în sistemele *nix. Cea mai simplă utilizare a comenzii este de a citi fișierele și de a le afișa în stdout, adică de a afișa conținutul fișierelor pe terminalul dvs.

cat file.txt

O altă utilizare a comenzii cat este de a citi sau de a combina mai multe fișiere împreună și de a trimite rezultatul către un monitor, așa cum este ilustrat în exemplele de mai jos.

cat file1.txt file2.txt file3.txt

Comanda poate fi, de asemenea, utilizată pentru a concatena (uni) mai multe fișiere într-un singur fișier folosind operatorul de redirecționare Linux “> ”.

cat file1.txt file2.txt file3.txt > file-all.txt

Folosind redirectorul de adăugare, puteți adăuga conținutul unui fișier nou în partea de jos a file-all.txt cu următoarea sintaxă.

cat file4.txt >> file-all.txt

Comanda cat poate fi folosită pentru a copia conținutul fișierului într-un fișier nou. Noul fișier poate fi redenumit arbitrar. De exemplu, copiați fișierul din locația curentă în directorul /tmp/.

cat file1.txt > /tmp/file1.txt 

Copiați fișierul din locația curentă în directorul /tmp/ și schimbați-i numele.

cat file1.txt > /tmp/newfile.cfg

O utilizare mai mică a comenzii cat este crearea unui fișier nou cu sintaxa de mai jos. Când ați terminat editarea fișierului, apăsați pe CTRL+D pentru a salva și a ieși din noul fișier.

cat > new_file.txt

Pentru a numerota toate liniile de ieșire ale unui fișier, inclusiv liniile goale, utilizați comutatorul -n.

cat -n file-all.txt

Pentru a afișa numai numărul fiecărei linii nevide, utilizați comutatorul -b.

cat -b file-all.txt

Doriți să aflați mai multe despre comanda Linux cat? apoi citiți articolul nostru despre 13 exemple de comenzi utile „pisica” în Linux.

Aflați cum să utilizați comanda Tac în Linux

Pe de altă parte, o comandă mai puțin cunoscută și mai puțin utilizată în sistemele *nix este comanda tac. Tac este practic versiunea inversă a comenzii cat (scrisă, de asemenea, invers) care tipărește fiecare linie a unui fișier începând de la linia de jos și terminând pe linia de sus la standardul mașinii dvs. ieșire.

tac file-all.txt

Una dintre cele mai importante opțiuni ale comenzii este reprezentată de comutatorul -s, care separă conținutul fișierului pe baza unui șir sau a unui cuvânt cheie din fișier.

tac file-all.txt --separator "two"

În continuare, cea mai importantă utilizare a comenzii tac este că poate oferi un mare ajutor pentru a depana fișierele jurnal, inversând ordinea cronologică a conținutului jurnalului.

tac /var/log/auth.log

Or to display the last lines

tail /var/log/auth.log | tac
Ieșire eșantion
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
...

La fel ca și comanda cat, tac face o treabă excelentă în manipularea fișierelor text, dar ar trebui evitată în alte tipuri de fișiere, în special în fișierele binare sau în fișierele unde prima linie indică programul care îl va rula.