Эта статья является частью нашей серии Linux Tricks and Tips, в этой статье мы рассмотрим некоторые основные примеры использования команды cat (самой часто используемой команды в Linux) и tac (обратная команда cat – вывод файлов в обратном порядке) с некоторыми практическими примерами.
Читайте также: 13 полезных примеров использования команды ‘cat’ в Linux
Основное использование команды Cat в Linux
Команда Cat, акроним для Concatenate, является одной из самых используемых команд в *nix системах. Самое базовое использование команды – чтение файлов и их отображение на stdout, что означает отображение содержимого файлов на вашем терминале.
# cat file.txt

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

Команду также можно использовать для конкатенации (объединения) нескольких файлов в один единый файл с использованием оператора перенаправления Linux “>”
.
# cat file1.txt file2.txt file3.txt > file-all.txt

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

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

Скопируйте файл из текущего расположения в каталог /tmp/
и измените его имя.
# cat file1.txt > /tmp/newfile.cfg

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

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

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

Хотите узнать больше о команде Linux cat? Тогда прочитайте нашу статью о 13 полезных примерах использования команды ‘cat’ в Linux.
Узнайте, как использовать команду Tac в Linux
С другой стороны, менее известной и менее используемой командой в *nix системах является команда tac
. Tac практически является обратной версией команды cat
(также читается наоборот), которая выводит каждую строку файла, начиная с нижней строки и заканчивая верхней строкой, на стандартный вывод вашего компьютера.
# tac file-all.txt

Одним из наиболее важных параметров команды является ключ -s
, который разделяет содержимое файла на основе строки или ключевого слова из файла.
# tac file-all.txt --separator "two"

Далее, наиболее важным использованием команды 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/