Как использовать команду cat в Linux

Предположим, вы работаете на терминале и вам действительно нужно просмотреть текстовый файл, но вам лень просто зайти в этот каталог, использовать мышь и открыть его. Ну, Linux удовлетворяет вашу потребность просматривать содержимое текстового файла прямо в терминале.

cat означает «конкатенация». Конкатенация чего-либо определяется как связывание в ряд. В данном случае мы говорим о конкатенации или связывании содержимого текстовых файлов. Эта небольшая утилита командной строки действительно оказывается полезной для ваших задач больше, чем вы думаете.

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

Узнать больше о cat

cat помогает вам в конкатенации текстовых файлов, отсюда и название ‘cat’. Команда cat считывает данные из файла и отображает его содержимое на терминале пользователя в качестве вывода.

Создание новых файлов с помощью этой команды также возможно. Следовательно, команда cat имеет несколько измерений, о которых пользователь должен знать.

Давайте рассмотрим примитивное использование команды cat в следующем примере.

Общий синтаксис:

cat [options..] [file_name]

Пример:

cat demo.txt

Вывод:

This is a demo file.
This article willl help you with learning the cat command.
cat command is pretty easy  to use.
You can learn about its feqatures in this article.
 End of file


Thank you.

Доступны варианты с cat

cat может быть использовано для различных целей так, как мы хотим, используя опции, предоставляемые Linux. Вы узнаете о некоторых важных опциях в этой статье.

ВариантОписание
-nпечатает номера строк
-sпропустить пустые строки в выводе
-Tразличать табуляции и пробелы
-eпоказывать символы окончания строки
оператор >позволяет копировать содержимое из одного файла в другой
>> (Оператор перенаправления)добавляет вывод в указанный файл

Далее по ходу статьи мы рассмотрим примеры этих вариантов один за другим.


Распечатайте номера строк с помощью cat

Использование опции -n с командой cat позволяет распечатать номера строк текстового файла.

Пример:

cat -n /etc/passwd

Вывод:

     1  root:x:0:0:root:/root:/bin/bash
     2	daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
     3	bin:x:2:2:bin:/bin:/usr/sbin/nologin
     4	sys:x:3:3:sys:/dev:/usr/sbin/nologin
     5	sync:x:4:65534:sync:/bin:/bin/sync
     6	games:x:5:60:games:/usr/games:/usr/sbin/nologin
     7	man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
     8	lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
     9	mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    10	news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    11	uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
    12	proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
    13	www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    14	backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
    15	list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin

Здесь каждая строка обозначена номером. Это также помогает получить представление об общем количестве строк в файле. Пустым строкам в текстовом файле также присваиваются номера при использовании опции -n.


Использование оператора > для копирования содержимого файла

Оператор > может быть использован с командой cat для копирования содержимого файла в какой-либо другой файл. Мы поймем это лучше на примере.

Общий синтаксис:

cat file1 > file2

Здесь содержимое файла file1 будет скопировано в файл file2. Не обязательно, чтобы файл file2 уже существовал. Если он существует, то хорошо, но если нет, то эта команда создаст его для вас.

Пример:

cat demo.txt > test.txt

Вывод:

gaurav@ubuntu:~$ cat test.txt
This is a demo file.
This article willl help you with learning the cat command.
cat command is pretty easy  to use.
You can learn about its feqatures in this article.
 End of file


Thank you.


gaurav@ubuntu:~$

Здесь содержимое файла ‘demo.txt’ направляется или копируется в файл ‘test.txt’. Теперь, в этом случае файл test.txt не существовал до запуска этой команды. Он был фактически создан этой командой.


Использование оператора >> для добавления содержимого файла

Мы можем использовать >> (оператор перенаправления) с командой cat для добавления содержимого файла.

При добавлении файлов выходные данные одной команды отправляются в качестве входных данных в файл или какую-либо другую команду.

Например, если я запущу команду cat /etc/group, то информация обо всех группах, присутствующих в вашей системе Linux, будет отображена на терминале. Теперь предположим, что вы хотели бы получить эти данные в виде файла, тогда, в этом случае, вы можете использовать оператор перенаправления >> вместе с командой cat.

Общий синтаксис:

cat /dir1/file.txt >> [new_file]

Пример:

cat /etc/group >> groups.txt

Эта команда отправит вывод команды cat /etc/group в качестве входных данных в файл group.txt.

Вывод:

gaurav@ubuntu:~$ cat group.txt
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,gaurav
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:

Пропуск пустых строк в выводе

В текстовых файлах могут быть некоторые пустые строки, которые увеличат длину вывода. Повторяющиеся пустые строки можно пропустить с помощью опции -s с командой cat.

Давайте рассмотрим один пример текстового файла.

This is a demo file.

This article willl help you with learning the cat command.
cat command is pretty easy  to use.
You can learn about its feqatures in this article.



Above two lines are empty.
 End of file


Thank you.

Вы можете видеть в выделенной части, что есть 3 пустые строки. Теперь давайте используем опцию -s, чтобы подавить лишние пустые строки.

Пример:

cat -s demo.txt

Вывод:

This is a demo file.

This article willl help you with learning the cat command.
cat command is pretty easy  to use.
You can learn about its feqatures in this article.

Above two lines are empty.
 End of file

Thank you.

Вы можете видеть, что лишние пустые строки теперь опущены из вывода. Эта опция полезна, когда вы имеете дело с большими выводами на вашем терминале.


Указание конца строк в файле

Когда опция -e используется с командой cat, отображается невидимый символ, представляющий конец каждой отдельной строки. Этот конец любой строки задается символом ‘ $‘.

Общий синтаксис:

cat -e [filename]

Пример:

cat -e /etc/issue

Вывод:

Ubuntu 18.04.5 LTS \n \l$
$

Здесь вывод показывает, что окончание каждой строки отмечено символом «$».


Создайте новый файл с помощью cat

Команда cat также может быть использована для создания нового файла, как и любой другой текстовый редактор, например nano или vim. Вы можете редактировать этот недавно созданный файл с помощью терминала.

Общий синтаксис:

cat > [newfile]

Пример:

cat > report.txt

Вывод:

gaurav@ubuntu:~$ cat > report.txt
This is a report file required for maintaining the logs.

Kindly do not modify this file.

End of file
...
..
^C
gaurav@ubuntu:~$

Таким образом, команда cat создала новое имя файла report.txt.


Отобразить содержимое всех текстовых файлов в папке

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

Общий синтаксис:

cat *.txt

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

Давайте сначала рассмотрим два демонстрационных файла sample1.txt и sample2.txt.

gaurav@ubuntu:~/cat$ cat sample1.txt
This is the output of the first file 'sample 1'.
Thank You.
gaurav@ubuntu:~/cat$

gaurav@ubuntu:~/cat$ cat sample1.txt
This is the output of the first file 'sample 1'.
Thank You.
gaurav@ubuntu:~/cat$

Пример:

cat *.txt

Эта команда отобразит содержимое обоих текстовых файлов, имеющихся в моем текущем рабочем каталоге, в виде единого вывода.

Вывод:

gaurav@ubuntu:~/cat$ cat *.txt
This is the output of the first file 'sample 1'.
Thank You.
This is the output of the second file 'sample2'.
Thank You.
gaurav@ubuntu:~/cat$

Заключение

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