Команда cat
(сокращение от concatenate) — это инструмент командной строки, который позволяет создавать файлы, просматривать их содержимое, объединять несколько файлов. Эта команда считается одной из наиболее широко используемых в Linux и при этом отличается простотой применения. Она будет очень полезной в повседневном использовании для каждого пользователя.
В этой статье мы рассмотрим 13 примеров использования команды cat
в GNU / Linux.
Содержание:
- Общий синтаксис команды cat
- Показать содержимое файла с помощью cat
- Просмотр содержимого нескольких файлов
- Создайте файл и запишите в него текст, используя cat
- Используйте команду cat с опциями more / less
- Отобразите номера строк в файле
- Поставьте $ в конце строки
- Отображение разделенных табуляцией строк в файле
- Отображение нескольких файлов одновременно
- Перезапишите файл содержимым другого файла
- Добавление текста в конец файла с cat
- Перенаправление текста файла в STDIN, используя cat
- Запись текста нескольких файлов в один
- Сортировка содержимого нескольких файлов в одном файле
- Выводы
Общий синтаксис команды cat
Данная утилита отличается довольно простым синтаксисом, поэтому запомнить особенности ее использования не составит труда. Чтобы ознакомиться с ними — используйте следующую команду:
Показать содержимое файла с помощью cat
Перейдем к изучению самой команды. Одна из основных ее функций — вывод содержимого файла в командную строку. Чтобы его узнать, введите:
Если Вам нужно просмотреть файл из другой директории — просто напишите путь к нему, а не только название. Например:
Просмотр содержимого нескольких файлов
Команда cat
позволяет выводить содержимое сразу нескольких файлов одновременно. Отметим, что вывод содержимого будет соответствовать порядку записи Ваших файлов. В нашем примере будет отображаться сначала содержимое файла test1
, а потом — test2
:
Создайте файл и запишите в него текст, используя cat
Вы также можете создавать файл с помощью данного инструмента. После этого командная оболочка Linux начнет диалог, позволяющий Вам сразу же ввести текст с клавиатуры для записи в новый файл:
Ниже введенной команды у Вас появиться пустое поле. В него можете вписать желаемый текст. Потом нажмите комбинацию клавиш Ctrl + d, чтобы окончить ввод текста.
Теперь выведем на экран содержимое файла:
Читайте также: Bat — клон команды cat с подсветкой синтаксиса и интеграцией Git
Используйте команду cat с опциями more / less
Порой пользователям приходиться работать с огромными документами. Их содержимое может попросту не поместится в окно терминала, и часть текста не будет отображена. Чтобы этого избежать — предлагаем Вам использовать команды more
/ less
вместе с cat
, как это показано ниже:
Отобразите номера строк в файле
Возможно, Вам потребуется внести изменения в определенной строку текстового содержимого файла. В стандартном виде наша утилита не показывает номер строки. Для удобства Вы можете пользоваться опцией -n
, которая выведет текст с номерами строк:
Поставьте $ в конце строки
После вывода содержимого файла трудно определить, где заканчивается строка. К примеру, если она заканчивается пробелом, или данная строка вовсе отсутствует. Чтобы определить это — используется параметр -e
. Он вставит в нужном месте знак $
и определит пробелы, окончания строк и пустые строки:
Отображение разделенных табуляцией строк в файле
Чаще всего для выделения абзацев в текстовом документе используют табуляцию. Также она применяется и для создания отступов в коде. Чтобы узнать, где пользователь поставил Tab — используйте опцию -T
. Она заполнит пространство отступа Tab с помощью символов ^|
:
Отображение нескольких файлов одновременно
Еще один способ вывести содержимое сразу нескольких файлов — это перечислить команду с названиями через точки с запятой, как показано ниже. Такой способ также выведет содержимое в порядке очереди:
Перезапишите файл содержимым другого файла
В данном блоке мы рассмотрим, как перезаписывать содержимое файла. Вы можете перенаправить контент из одного файла в другой, используя символ >
. Обратите внимание, что содержимое второго файла будет полностью перезаписано содержимым первого:
Читайте также: Как переименовать файл с помощью Wget в Linux
Добавление текста в конец файла с cat
Данный способ изменения контента файла не перезаписывает текст файла полностью. Вместо этого он добавляет содержимое первого файл в конец второго с помощью символа >>
:
Перенаправление текста файла в STDIN, используя cat
Данный способ по свой сути похож на простой вывод содержимого файла на экран. Единственное отличие в том, что он использует знак <
. Таким образом данный знак перенаправляет имя файла в поток стандартного ввода (STDIN) команды:
Запись текста из нескольких файлов в один
Ранее в этой статье мы уже рассмотрели пример того, как перезаписывать содержимое существующего файла. В данном примере мы сделаем все то же самое. Единственное отличие будет состоять в том, что мы используем сразу несколько файлов для записи в один. Обратите внимание, что содержимое последнего файла будет полностью перезаписано содержимым нескольких файлов. Для наглядности — посмотрите пример:
Сортировка содержимого нескольких файлов в одном файле
Давайте немного модернизируем предыдущую команду. Предлагаем Вам сначала отсортировать содержимое файлов и потом записать в файл. Для этого будем использовать комбинацию с командой sort
. Она осуществляет сортировку с учетом следующих правил:
- строки, начинающиеся с цифры, будут отображаться перед строками, начинающимися с буквы;
- начинающиеся с буквы строки — сортируются в алфавитном порядке;
- строки, начинающиеся с прописной буквы, отображаются перед строками, начинающимися с той же буквы в нижнем регистре.
Например, отсортируем содержимое трех файлов и запишем в четвертый:
Выводы
Команду cat
можно использовать для выполнения различных операций с файлами и их текстовым содержимым. При этом освоить базовые функции утилиты можно уже при первом знакомстве с ней. Надеемся, что Вы закрепили данный материал практикой и готовы продолжать изучения основ работы с ОС GNU / Linux.
Спасибо за время, уделенное прочтению статьи!
Если возникли вопросы — задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
Ещё cat портит файлы.
Пример:
Cat file1.c >>file2. c
Так у меня к file1 в file2 дописал я символ Cr к каждой строке хотя изначально он там уже был. Только в паре с Lf. (виндовый конец строки).