23.06.2025

Cat Linux: утилита объединения потоков

Для работы с данными в Linux используется множество разных инструментов: одни автоматизируют работу пользователя, другие дополняют функционал и упрощают взаимодействие с ОС. Одной из таких является cat, основная функция которой это конкатенация или объединение потоков ввода и вывода в единый. В данном материале рассмотрим подробно все возможные кейсы применения этой утилиты!

Что такое утилита cat?

Cat или дословно concatenate – утилита в Linux подобных системах, позволяющая объединить потоки ввода и вывода направленные в утилиту. Как результат работы суммированные потоки можно вывести в один и направить уже в другое ПО пайплайном, записать в файл или вывести на экран.

Стандартное применение утилиты – это вывод содержимого файлов. К примеру просмотрим, что лежит в файле gg.txt:

cat gg.txt

Скриншот №1 — Просмотр файла

Когда вы вызываете утилиту, команда читает содержимое gg.txt и отправляет его на стандартный вывод (stdout), который обычно связан с терминалом, в следствие чего текст появляется на экране. Но что если необходимо вывести данные сразу из двух файлов. Для этого можем перечислить пути к файлам через пробел или указать файл через пайплайн. К примеру:

cat gg.txt gt.txt

Или аналогичная команда выше описанной:

cat gg.txt | cat - gt.txt

Скриншот №2 — Совмещение потоков

В данном случаем, утилита предварительно считывает данные с двух файлов и объединяет их в один, где потом уже передает на стандартный поток вывода. Данная функция полезна, при работе с большим массивом данных, который необходимо отформатировать, либо же фильтровать. К примеру, можно передать объединенные данные, а после фильтровать их через передачу по pipeline утилите grep:

cat gg.txt gt.txt | grep "NOT TRUE" 

Скриншот №3 — Фильтрация потока данных

Файлы были суммированы и отфильтрованы в соответствии с заданным правилом, после чего выведена строка, содержащая паттерн. Такой прием обработки можно использовать, при анализе большого объема данных, к примеру, поиска значений в лог-файлах.

При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:

Скриншот №4 — Создание сервера

Рассмотрим еще один интересный прием, который поможет в работе с данными. К примеру, у нас есть массив данных, которые необходимо отсортировать и оставить только уникальные значения, удалив дубликаты. В Excel задача решается длительными манипуляциями, а в Linux 1 строкой команд:

cat list_domains_1.txt list_domains_2.txt | cut -f1 -d , | sort -u > new_data.txt

Первая команда cat объединит существующие файлы в один, передаст на управление данные в утилиту cut. Она в свою очередь отфильтрует данные и оставит только первый столбец -f1 с доменными именами и удалит дубликаты -d, так же кастомно указан разделитель “,“. После отфильтрованные данные получит утилита sort, которая отсортирует их и запишет в файл new_data.txt.

Утилита может использоваться для построения различных цепочек обработки данных через pipeline и является неотъемлемым механизмом Linux.