Cum se utilizează comenzile "cat" și "tac" cu exemple în Linux


Acest articol face parte din seriile noastre de trucuri și sfaturi Linux, în acest articol vom discuta despre o utilizare de bază a comenzii cat (comanda cea mai frecvent utilizată în Linux) și tac inversarea comenzii pisicii - tipărirea fișierelor în ordine inversă) cu câteva exemple practice.

Utilizarea de bază a comenzii Cat în Linux

Comanda Cat , acronimul Concatenate , este una dintre cele mai utilizate comenzi din sistemele * nix. Utilizarea cea mai de bază a comenzii este de a citi fișierele și de a le afișa în stdout , adică pentru a afișa conținutul fișierelor de pe terminal.

# 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 ieșirea 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 (îmbina) mai multe fișiere într-un singur fișier utilizând operatorul de redirecționare "& gt;" Linux.

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

Prin utilizarea redirectorului atașat, puteți adăuga conținutul unui fișier nou în partea de jos a fișierului file-all.txt cu următoarea sintaxă.

# cat file4.txt >> file-all.txt

Comanda cat poate fi utilizată pentru a copia conținutul fișierului într-un fișier nou. Fișierul nou 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 numele acestuia.

# cat file1.txt > /tmp/newfile.cfg

O mai mică utilizare 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 CTRL + D pentru a salva și a ieși din fișierul nou.

# cat > new_file.txt

Pentru a număra 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 care nu este gol, 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 comandă "de pisică" utile î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 folosită în sistemele * nix este comanda tac . Tac este, practic, versiunea inversă a comenzii cat care imprimă fiecare linie a unui fișier pornind de la linia de jos și terminând pe linia superioară la standardul mașinii de 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"

Apoi, cea mai importantă utilizare a comenzii tac este că poate oferi un ajutor deosebit 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
[email protected] ~ $ 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
....
[email protected] ~ $ 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 pe fișierele unde prima linie desemnează programul care o va executa.