Как использовать команды ‘cat’ и ‘tac’ с примерами в Linux

Эта статья является частью нашей серии Linux Tricks and Tips, в этой статье мы рассмотрим некоторые основные примеры использования команды cat (самой часто используемой команды в Linux) и tac (обратная команда cat – вывод файлов в обратном порядке) с некоторыми практическими примерами.

Читайте также: 13 полезных примеров использования команды ‘cat’ в Linux

Основное использование команды Cat в Linux

Команда Cat, акроним для Concatenate, является одной из самых используемых команд в *nix системах. Самое базовое использование команды – чтение файлов и их отображение на stdout, что означает отображение содержимого файлов на вашем терминале.

# cat file.txt
View Content of File in Linux

Другое использование команды cat – чтение или объединение нескольких файлов вместе и отправка вывода на монитор, как показано в приведенных ниже примерах.

# cat file1.txt file2.txt file3.txt
View Content of Multiple Files

Команду также можно использовать для конкатенации (объединения) нескольких файлов в один единый файл с использованием оператора перенаправления Linux “>”.

# cat file1.txt file2.txt file3.txt > file-all.txt
Join Multiple Files in Linux

Используя оператор добавления, вы можете добавить содержимое нового файла в конец файла file-all.txt с помощью следующего синтаксиса.

# cat file4.txt >> file-all.txt
Append Content File to New File

Команда cat может использоваться для копирования содержимого файла в новый файл. Новый файл может быть произвольно переименован. Например, скопируйте файл из текущего расположения в каталог /tmp/.

# cat file1.txt > /tmp/file1.txt 
Copy Content of File to New File

Скопируйте файл из текущего расположения в каталог /tmp/ и измените его имя.

# cat file1.txt > /tmp/newfile.cfg
Copy File to /tmp Location

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
Create New File using Cat Command

Чтобы пронумеровать все строки вывода файла, включая пустые строки, используйте ключ -n.

# cat -n file-all.txt
Add Numbers to Lines in File

Чтобы отобразить только номер каждой непустой строки, используйте ключ -b.

# cat -b file-all.txt
Print Line Numbers in File

Хотите узнать больше о команде Linux cat? Тогда прочитайте нашу статью о 13 полезных примерах использования команды ‘cat’ в Linux.

Узнайте, как использовать команду Tac в Linux

С другой стороны, менее известной и менее используемой командой в *nix системах является команда tac. Tac практически является обратной версией команды cat (также читается наоборот), которая выводит каждую строку файла, начиная с нижней строки и заканчивая верхней строкой, на стандартный вывод вашего компьютера.

# tac file-all.txt
Print Content File in Reverse Order

Одним из наиболее важных параметров команды является ключ -s, который разделяет содержимое файла на основе строки или ключевого слова из файла.

# tac file-all.txt --separator "two"
Remove Matching String in File

Далее, наиболее важным использованием команды tac является то, что она может значительно помочь в отладке файлов журналов, изменяя хронологический порядок содержимого журналов.

$ tac /var/log/auth.log

Or to display the last lines

$ tail /var/log/auth.log | tac
Пример вывода
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
...

Так же как команда cat, команда tac отлично справляется с обработкой текстовых файлов, но ее следует избегать в других типах файлов, особенно в двоичных файлах или в файлах, где первая строка обозначает программу, которая будет его запускать.

Source:
https://www.tecmint.com/learn-linux-cat-command-and-tac-command/