Полное руководство по команде cat в Linux

Обзор

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

1. Создание тестового файла и базовый просмотр

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

printf ‘First line\n\n\nSecond line with tab:\t[TAB]\nThird line with trailing space   \n’ > sample.txt

Команда cat выводит содержимое указанного файла на экран терминала как есть.
При запуске без опций она отображает исходный текст файла в неизменном виде.
⚙️ [Основные опции]

-n : Нумерует все строки при выводе, включая пустые.
-b : Нумерует только непустые строки при выводе.
-s : Сжимает две и более идущие подряд пустые строки в одну пустую строку.
-E : Отображает символ $ в конце каждой строки, обозначая перевод строки.
-T : Отображает символы табуляции (Tab) в виде ^I для визуального различия.

cat sample.txt

2. Сравнение опций нумерации строк (-n против -b)

Команда cat -n sample.txt выводит все строки файла с добавлением номеров.
Это удобно для проверки общей структуры и позиции строк, включая пустые строки без текста (строки 2 и 3).

cat -n sample.txt

Команда cat -b sample.txt нумерует только непустые строки.
Строки без содержимого пропускаются при нумерации, что позволяет легко оценить реальное количество строк с полезными данными.

cat -b sample.txt

3. Сжатие повторяющихся пустых строк для улучшения читаемости (-s)

Команда cat -s sample.txt сжимает последовательности пустых строк в одну пустую строку.
Это полезно для сокращения лишних пустых отступов и улучшения читаемости документа в целом.

cat -s sample.txt

Команда cat -ns sample.txt одновременно сжимает повторяющиеся пустые строки и нумерует все строки при выводе.
Это позволяет наглядно оценить общее число строк и расположение текста после сжатия.

cat -ns sample.txt

4. Визуализация невидимых спецсимволов, переносов строк и табуляций (-E, -T, -A)

Команда cat -E sample.txt выводит знак $ в конце каждой строки (на месте переноса строки).
Она помогает наглядно проверить наличие невидимых пробелов на концах строк (trailing space) или лишних переводов строк.

cat -E sample.txt

Команда cat -T sample.txt заменяет символы табуляции (Tab) на ^I при выводе на экран.
Это позволяет четко отличить обычные пробелы от символов табуляции, что незаменимо при поиске ошибок в отступах кода или конфигурационных файлов.

cat -T sample.txt

Команда cat -A sample.txt визуализирует все скрытые управляющие символы, переводы строк и табуляции.
Она работает эквивалентно комбинации -vET, одновременно отображая табуляцию (^I) и перевод строки ($), что делает её идеальным выбором для комплексного поиска скрытых ошибок, связанных с пробельными символами.

cat -A sample.txt

5. Объединение нескольких файлов и создание файлов с помощью EOF

Для практического объединения файлов создадим файл header.txt, содержащий заголовок.

echo ‘Header Info’ > header.txt

Команда cat header.txt sample.txt > merged.txt объединяет содержимое двух файлов header.txt и sample.txt по порядку и сохраняет результат в новый файл merged.txt.
Это эффективный способ объединения нескольких текстовых файлов в один или добавления вводной части в начало документа.

cat header.txt sample.txt > merged.txt

Команда cat << 'EOF' > append_test.txt использует синтаксис Here Document для записи многострочного текста в файл append_test.txt до ввода маркера EOF.
Она удобна для быстрого создания многострочных файлов прямо в командной оболочке без открытия текстового редактора.

cat « ‘EOF’ > append_test.txt
Line A
Line B
EOF

Команда cat merged.txt append_test.txt последовательно объединяет и выводит в терминал содержимое ранее созданных файлов merged.txt и append_test.txt.
С её помощью можно сразу убедиться, что объединенные данные выстроены в правильном порядке.

cat merged.txt append_test.txt

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