Wyszukiwanie w witrynie

Jak używać poleceń „cat” i „tac” z przykładami w systemie Linux


Ten artykuł jest częścią naszej serii Linux Tricks and Tips. W tym artykule omówimy podstawowe użycie polecenia cat (najczęściej używanego polecenia w systemie Linux) i tac ( odwrotność polecenia cat – drukowanie plików w odwrotnej kolejności) z kilkoma praktycznymi przykładami.

Przeczytaj także: 13 przydatnych przykładów poleceń „cat” w systemie Linux

Podstawowe użycie polecenia Cat w systemie Linux

Polecenie Cat, skrót od Concatenate, jest jednym z najczęściej używanych poleceń w systemach *nix. Najbardziej podstawowym zastosowaniem tego polecenia jest odczytywanie plików i wyświetlanie ich na stdout, co oznacza wyświetlanie zawartości plików na terminalu.

cat file.txt

Innym zastosowaniem polecenia cat jest odczytywanie lub łączenie wielu plików razem i wysyłanie wyników do monitora, jak pokazano w poniższych przykładach.

cat file1.txt file2.txt file3.txt

Polecenie może być również użyte do połączenia (złączenia) wielu plików w jeden za pomocą operatora przekierowania „> ” Linux.

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

Używając przekierowania dołączania, możesz dodać zawartość nowego pliku na dół pliku file-all.txt, stosując następującą składnię.

cat file4.txt >> file-all.txt

Komendy cat można użyć do skopiowania zawartości pliku do nowego pliku. Nazwę nowego pliku można dowolnie zmienić. Na przykład skopiuj plik z bieżącej lokalizacji do katalogu /tmp/.

cat file1.txt > /tmp/file1.txt 

Skopiuj plik z bieżącej lokalizacji do katalogu /tmp/ i zmień jego nazwę.

cat file1.txt > /tmp/newfile.cfg

Rzadszym użyciem polecenia cat jest utworzenie nowego pliku o poniższej składni. Po zakończeniu edycji pliku naciśnij CTRL+D, aby zapisać i wyjść z nowego pliku.

cat > new_file.txt

Aby ponumerować wszystkie linie wyjściowe pliku, włączając linie puste, użyj przełącznika -n.

cat -n file-all.txt

Aby wyświetlić tylko numer każdej niepustej linii, użyj przełącznika -b.

cat -b file-all.txt

Chcesz dowiedzieć się więcej o poleceniu cat w systemie Linux? następnie przeczytaj nasz artykuł o 13 przydatnych przykładach poleceń „cat” w systemie Linux.

Dowiedz się, jak korzystać z polecenia Tac w systemie Linux

Z drugiej strony mniej znaną i rzadziej używaną komendą w systemach *nix jest komenda tac. Tac jest praktycznie odwrotną wersją polecenia cat (również pisanego od tyłu), które wypisuje każdą linię pliku, zaczynając od dolnej linii i kończąc na górnej linii, zgodnie ze standardem Twojej maszyny wyjście.

tac file-all.txt

Jedną z najważniejszych opcji polecenia jest przełącznik -s, który oddziela zawartość pliku na podstawie ciągu znaków lub słowa kluczowego od pliku.

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

Następnie najważniejszym zastosowaniem polecenia tac jest to, że może ono stanowić wielką pomoc w debugowaniu plików dziennika, odwracając chronologiczną kolejność zawartości dziennika.

tac /var/log/auth.log

Or to display the last lines

tail /var/log/auth.log | tac
Przykładowe wyjście
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
...

Podobnie jak polecenie cat, polecenie tac doskonale radzi sobie z manipulowaniem plikami tekstowymi, ale należy go unikać w przypadku innych typów plików, zwłaszcza plików binarnych lub plików, w których pierwsza linia oznacza program, który go uruchomi.