Что такое команда 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 перечисляет содержимое файла по строкам и выводит его на терминал. Он не редактирует сам файл.

cat -n file1.txt

Но вы все равно можете сохранить вывод (с перечислением), сделав следующее:

cat -n file1.txt > file2.txt

Это перечисляет содержимое «file1.txt» и сохраняет его в «file2.txt».

Вы также можете перечислить несколько файлов вместе. Команда cat продолжит отсчет после конца первого файла. Если первый файл заканчивается на 33, то следующий будет начинаться с 34 и так далее.

Использование флага -b

Проблема с флагом -n в том, что он также перечисляет пустые строки. Если у вас есть файл с большим количеством пробелов для компоновки или удобства чтения, вам понадобится флаг -b.

cat -b file1.txt

Формат для флага -b работает так же, как и для флага -n. Кроме того, если вы используете их вместе, флаг -b будет преобладать над флагом -n, независимо от того, как вы их упорядочите.

Использование флага -s

Флаг -s – это еще один удобный флаг команды cat для тех случаев, когда в ваших файлах много белого пространства. Он сокращает все повторяющиеся пробелы до одного, что облегчает чтение.

cat -s file2.txt

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

Использование флага -e

Флаг -e находит конец каждой строки и добавляет $ в конце каждой строки.

cat -e file1.txt

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

Не забывайте, что флаг -e также добавляет $ в конце каждой пустой строки, поэтому вы можете использовать его вместе с -s, чтобы все выглядело чище.

Использование флага -t

Флаг -t похож на флаг -e, но вместо него ищет «символ табуляции» и заменяет его на ^I. Этот флаг хорош тем, что он умеет отличать символ табуляции от символа двойного пробела.

cat -t file1.txt > file2.txt

Это означает, что если вы используете флаги -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?

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

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.maketecheasier.com

Похожие статьи

Комментарии (0)