- cat(1)
- ОПЦИИ
- ОПЕРАНДЫ
- ИСПОЛЬЗОВАНИЕ
- ПРИМЕРЫ
- Пример 1: Конкатенация файла
- Пример 2: Конкатенация двух файлов в один
- Пример 3: Конкатенация двух произвольных фрагментов входного потока в одном вызове
- ПЕРЕМЕННЫЕ СРЕДЫ
- СТАТУС ВЫХОДА
- АТРИБУТЫ
- ССЫЛКИ
- ПРИМЕЧАНИЯ
- Что такое команда CAT в Linux и как ее использовать
- Основной формат для команды CAT
- CAT без выходной части
- Флаги команды CAT
- Использование флага -n
- Использование флага -b
- Использование флага -s
- Использование флага -e
- Использование флага -t
- Использование команд CAT в Linux
- Часто задаваемые вопросы
- Что произойдет, если я использую команду CAT в видеофайле?
- Могу ли я использовать команду Linux CAT с файлами из разных папок?
- Что произойдет, если я использую имя существующего файла в качестве выходного сигнала для команды CAT?
- Команда cat в Linux
- Назначение и синтаксис команды cat
- Примеры использования команды cat
cat(1)
Утилита cat читает последовательно файлы и выдает их содержимое в стандартный выходной поток. Таким образом, команда:
выдает file на терминал, а команда:
example% cat file1 file2 >file3
конкатенирует содержимое файлов file1 и file2, и записывает результаты в файл file3. Если входные файлы не заданы, утилита cat читает данные из стандартного входного потока.
ОПЦИИ
Поддерживаются следующие опции:
Вместе с опцией -v можно задавать следующие опции:
-e | Выдавать в конце каждой строки символ $ (перед символом новой строки). |
-t | Выдавать символы табуляции как ^I, а символы прогона страницы — как ^L. |
Опции -e и -t игнорируются, если не указана опция -v.
ОПЕРАНДЫ
Поддерживается следующий операнд:
файл Полное имя входного файла. Если файл не указан, используется стандартный входной поток. Если в качестве файла указан дефис (‘—‘), утилита cat будет читать из стандартного входного потока в соответствующем месте последовательности файлов. Утилита cat не будет закрывать и повторно открывать стандартный входной поток, если на него ссылаются таким образом, но позволяет указывать ‘—‘ в качестве файла несколько раз.
ИСПОЛЬЗОВАНИЕ
Описание работы утилиты cat с файлами, размер которых превосходит 2 Гбайта (2**31 байтов) см. на странице справочного руководства largefile(5).
ПРИМЕРЫ
Пример 1: Конкатенация файла
выдает содержимое указанного файла myfile в стандартный выходной поток.
Пример 2: Конкатенация двух файлов в один
example% cat doc1 doc2 > doc.all
конкатенирует содержимое файлов doc1 и doc2, и записывает результат в файл doc.all.
Пример 3: Конкатенация двух произвольных фрагментов входного потока в одном вызове
example% cat start - middle - end > file
если стандартный входной поток поступает с терминала, получает два произвольных фрагмента входного потока в одном вызове cat. Учтите, однако, что если стандартный входной поток поступает из обычного файла, эта команда эквивалентна следующей:
cat start - middle /dev/null end > file
поскольку все содержимое файла будет принято утилитой cat при первом появлении ‘—‘ в качестве имени файла, при повторном обращении к ‘—‘ сразу будет получен признак конца файла.
ПЕРЕМЕННЫЕ СРЕДЫ
Описание следующих переменных среды, влияющих на работу cat, см. на странице справочного руководства environ(5): LC_CTYPE, LC_MESSAGES и NLSPATH.
СТАТУС ВЫХОДА
Программа завершается со следующими значениями статуса выхода:
0 | Входные файлы были успешно выданы. |
>0 | Произошла ошибка. |
АТРИБУТЫ
Описание следующих атрибутов см. на странице справочного руководства attributes(5):
ТИП АТРИБУТА | ЗНАЧЕНИЕ АТРИБУТА |
Доступен в пакете | SUNWcsu |
CSI | включено |
ССЫЛКИ
ПРИМЕЧАНИЯ
Перенаправление результатов работы команды cat в один из читаемых файлов приведет к потере исходных данных читаемого файла. Например, команда
example% cat filename1 filename2 >filename1
приводит к потере исходных данных в файле filename1.
Последнее изменение: 1 февраля 1995 года
Copyright 2002 В. Кравчук, OpenXS Initiative, перевод на русский язык
Что такое команда CAT в Linux и как ее использовать
Команда cat – это самый простой способ объединения файлов в Linux. Это сокращение от conCATenation, но это нечто большее, чем просто копирование/вставка одного файла рядом с другим.
Основной формат для команды CAT
Так обычно используется команда cat :
cat file1 file2 file3 > output
Порядок добавления файлов рядом друг с другом основан на порядке записи файлов в команде. В этом примере, когда вы откроете файл output, за содержимым файла file1 последует file2, затем file3 и так далее.
Вы можете добавить столько файлов, сколько захотите, пока ваша файловая система может поддерживать конечный размер выходного файла.
Кроме того, как и во всех командах терминала Linux, вам нужно будет указать расширение файла, когда вы добавляете их. Например, если вы работали с файлами JSON и планировали объединить два таких файла вместе, вам нужно будет напечатать это следующим образом:
cat file1.json file2.json > combined_file.json
CAT без выходной части
Для cat выходная часть необязательна. Удаление этой части выводит содержимое каждого файла в терминал.
Вы также можете сделать это для отдельных файлов. Помните, что здесь вы не сможете редактировать содержимое, как при работе с файлами DOC или TXT в текстовом редакторе. Команда cat становится больше похожей на просмотрщик текстовых файлов, чем на редактор.
Флаги команды CAT
Существует шесть флагов, которые вы можете использовать при работе с CAT в Linux:
- -n перечислять все строки, начиная с 1.
- -b перечислять только те строки, которые содержат символы.
- -s сжимать несколько последовательных пустых строк в одну пустую строку.
- -e помечать конец каждой строки.
- -q не выводить сообщение, если CAT не может найти входной файл.
- -t отображать символы табуляции как ^I .
Мы рассмотрим, как работает каждый из них и как их можно использовать.
Использование флага -n
Флаг -n перечисляет содержимое файла по строкам и выводит его на терминал. Он не редактирует сам файл.
Но вы все равно можете сохранить вывод (с перечислением), сделав следующее:
Это перечисляет содержимое «file1.txt» и сохраняет его в «file2.txt».
Вы также можете перечислить несколько файлов вместе. Команда cat продолжит отсчет после конца первого файла. Если первый файл заканчивается на 33, то следующий будет начинаться с 34 и так далее.
Использование флага -b
Проблема с флагом -n в том, что он также перечисляет пустые строки. Если у вас есть файл с большим количеством пробелов для компоновки или удобства чтения, вам понадобится флаг -b .
Формат для флага -b работает так же, как и для флага -n . Кроме того, если вы используете их вместе, флаг -b будет преобладать над флагом -n , независимо от того, как вы их упорядочите.
Использование флага -s
Флаг -s – это еще один удобный флаг команды cat для тех случаев, когда в ваших файлах много белого пространства. Он сокращает все повторяющиеся пробелы до одного, что облегчает чтение.
Этот флаг ищет по крайней мере 2 последовательные пустые строки перед их объединением. Если ваш файл содержит одну пустую строку между двумя заполненными, он пропустит ее и будет искать следующую.
Использование флага -e
Флаг -e находит конец каждой строки и добавляет $ в конце каждой строки.
Этот флаг облегчает работу с текстовыми файлами при использовании регулярных выражений или regex. Вы можете попросить дополнительный скрипт или программу прочитать содержимое сохраненного файла и проверить концы с помощью regex.
Не забывайте, что флаг -e также добавляет $ в конце каждой пустой строки, поэтому вы можете использовать его вместе с -s , чтобы все выглядело чище.
Использование флага -t
Флаг -t похож на флаг -e , но вместо него ищет «символ табуляции» и заменяет его на ^I . Этот флаг хорош тем, что он умеет отличать символ табуляции от символа двойного пробела.
Это означает, что если вы используете флаги -n или -b вместе с флагом -t , он будет считать символы пробела такими, какие они есть, и оставит их как есть. То же самое произойдет, если вы добавите тонну пробелов, чтобы имитировать символ «табуляции».
Использование команд CAT в Linux
Команду cat следует использовать только тогда, когда вы пытаетесь объединить текстовые файлы построчно. Не ждите, что команда cat возьмет две строки текста и объединит их в одну.
С другой стороны, вы увидите много пользы от этой команды, когда попытаетесь очистить текстовые файлы для работы других скриптов. Флаги -e , -t , -b и -s достаточно полезны, чтобы сэкономить ваше время на создание собственного скрипта.
Это также поможет облегчить просмотр текстовых файлов по сравнению с необходимостью постоянно использовать редактор Nano.
Часто задаваемые вопросы
Что произойдет, если я использую команду CAT в видеофайле?
Видеофайлы содержат так называемый «заголовок». Это часть информации, которая показывает, как было закодировано видео. Если вы используете команду CAT для объединения видеофайлов, вы получите файл, в котором информация заголовка находится между кодированными видеоданными. Большинство зрителей, прочитав это, подумают, что ваш файл поврежден. Для работы с видеофайлами лучше использовать другой инструмент, например FFmpeg.
Могу ли я использовать команду Linux CAT с файлами из разных папок?
Вы можете рассматривать имена файлов как пути к папкам, когда вы объединяете файлы в папках с помощью команды cat . Таким образом, вы можете объединить файл из папки Desktop с другим файлом из папки Photos, сделав это следующим образом: cat Desktop/file1.txt Photos/Photos.txt >> output.txt .
Что произойдет, если я использую имя существующего файла в качестве выходного сигнала для команды CAT?
В зависимости от того, используете ли вы команду > или >> , она либо перезапишет, либо добавит содержимое к существующему файлу. Команда >> добавляет содержимое в файл или создает файл, если он не существует. Команда > перезаписывает файл, если он существует, или создает его, если он не существует.
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Команда cat в Linux
Команда cat считается наиболее востребованной при работе в операционных системах Linux. И все из-за того, что она, в зависимости от используемых опций, позволяет просматривать содержимое файлов, склеивать их и т.д. Поэтому освоение UNIX-совместимых платформ часто начинают с нее и подобных команд.
Назначение и синтаксис команды cat
Наименование команды произошло за счет сокращения слова «concatenate» («конкатенация, сцепка»). Команда позволяет создавать и объединять содержимое файлов, а также считать данные в указанном файле и отображать их на экране монитора. Правда, есть ряд операторов и опций, которые расширяют функционал, например, перенаправляют вывод или отображают то, что вводится на клавиатуре в текущий момент.
Общий синтаксис ввода команды выглядит так:
Передавать утилите можно неограниченное количество файлов. Их содержимое будет выводиться на мониторе последовательно, без каких-либо разделителей. Если нужно изменить метод вывода, понадобится ввести опции.
- -b – включить нумерацию непустых строк (заполненных данными).
- -E – в конце каждой строки будет отображаться символ $.
- -n – пронумеровывать все строки, даже пустые (без данных).
- -s – автоматически удалять пустые повторяющиеся строки.
- -T – помечать табуляции комбинацией символов ^I.
- -h – вывести на экран монитора справочную информацию.
- -v – отобразить текущую версию утилиты.
Вот такой краткий перечень опций прилагается к приложению cat. Его достаточно для выполнения операций, задуманных разработчиком.
Примеры использования команды cat
Простейший вариант ввода команды, когда она просто отображает содержимое указанного файла:
Если нужно передать системе несколько файлов, достаточно перечислить их в параметрах:
Большинство команд, используемых в Linux, поддерживают стандартный поток ввода данных при помощи символа «-». В случае с cat это будет выглядеть так:
Теперь опробуем одну из ранее приведенных опций. Например, нумерацию непустых строк:
Или всех строк, имеющихся в файле:
Если попутно требуется удалить повторяющиеся пустые строки, команда будет выглядеть так:
При отсутствии параметров и опций команда будет отображать данные из стандартного ввода:
Чтобы завершить запись, нужно нажать . Фактически получается примитивный текстовый редактор, ведь утилита считывает вводимые символы и выводит их на экран монитора. Можно направить данные в указанный файл на диске:
Чтобы записать данные из нескольких файлов в один, команда будет выглядеть так:
$ cat file1 file2 > file3 $ cat file3
Основное назначение команды cat – считывание данных из файлов, поэтому можно смело экспериментировать с комбинацией опций и параметров. При объединении файлов рекомендуется указывать уникальное имя создаваемого файла, дабы исключить риски перезаписи важной информации.