nl
Что делает команда nl в Linux
Команда nl в Linux используется для нумерации строк в текстовых файлах. Она особенно полезна при анализе логов, просмотре длинных конфигурационных файлов и подготовке текстов для отладки. В отличие от команды cat -n, которая просто добавляет номера ко всем строкам, команда nl в Linux имеет гибкие параметры форматирования, позволяющие управлять нумерацией, пропуском пустых строк и стилем вывода.
Простая команда для начала работы:
nl file.txt
Этот пример выведет содержимое файла с добавлением номеров строк. По умолчанию нумеруются только непустые строки.
Основные параметры команды nl в Linux
Параметр -b: способ нумерации строк
Опция -b определяет, какие строки будут нумероваться. Возможные значения:
-b a— нумеровать все строки, включая пустые.-b t— нумеровать только непустые строки (значение по умолчанию).
Пример:
nl -b a script.sh
Здесь команда nl в Linux нумерует каждую строку, даже если она пустая. Это удобно при анализе исходного кода, когда важно знать точную позицию каждой строки.
Параметр -n: формат отображения номера
Опция -n определяет, как отображаются номера строк. Доступные варианты:
-n ln— номер выровнен по левому краю;-n rn— номер выровнен по правому краю (по умолчанию);-n rz— номер выровнен по правому краю и дополняется нулями.
Пример:
nl -n rz config.yaml
Вывод будет содержать номера строк с ведущими нулями, например 001, 002, 003 — что полезно при сравнении или автоматической обработке файлов.
Параметр -w: ширина поля для номера
Опция -w задает количество символов, выделяемое под номер строки. По умолчанию используется ширина 6 символов.
nl -w 3 data.txt
Здесь команда nl в Linux выведет номера в формате 001, 002 и т.д., занимая ровно три символа. Это помогает сделать вывод более компактным.
Параметр -s: разделитель между номером и строкой
Опция -s задает разделитель между номером строки и содержимым. По умолчанию используется табуляция.
nl -s ': ' file.txt
Теперь вывод будет выглядеть так:
1: строка 1
2: строка 2
3: строка 3
Совет: если вы планируете использовать вывод в скриптах, лучше указать простой разделитель вроде -s ' ' или -s ',' для удобного парсинга строк.
Расширенные параметры и форматирование
Параметр -v: начальное значение нумерации
Если требуется начать нумерацию не с 1, а с любого другого числа, используйте -v:
nl -v 100 report.log
В этом примере команда nl в Linux начнет нумерацию строк с 100. Это полезно при объединении нескольких файлов с сохранением логической последовательности строк.
Параметр -i: шаг нумерации
Параметр -i задает шаг, с которым увеличивается номер строки.
nl -i 5 sample.txt
В результате строки будут пронумерованы 1, 6, 11, 16 и т.д. Такой подход удобен при создании отчетов или при подготовке таблиц с нестандартной нумерацией.
Параметр -p: сохранение нумерации между страницами
По умолчанию при разделении файла на “страницы” нумерация может сбрасываться. Опция -p сохраняет непрерывную нумерацию:
nl -p longfile.txt
Это гарантирует, что номера строк останутся последовательными независимо от структуры файла.
Примеры использования команды nl в Linux на практике
- Нумерация строк в исходниках:
nl -b a -n rz -w 4 -s ' | ' main.pyЭтот пример выведет файлmain.pyс нумерацией всех строк, включая пустые, в формате:0001 | import os 0002 | 0003 | def run(): - Создание файла с номерами строк для анализа логов:
nl -b a system.log > numbered_log.txtТеперь лог будет удобно читать, а ссылки на конкретные строки можно использовать при отладке. - Совмещение с grep для фильтрации:
nl -b a file.txt | grep "error"Выведет только строки, содержащие “error”, вместе с их номерами. Это делает команду nl в Linux отличным инструментом для администраторов и DevOps-инженеров.
Советы по эффективному использованию команды nl в Linux
nl вместо cat -n, если требуется точный контроль над нумерацией и форматированием вывода.nl с другими утилитами, такими как grep, sed или awk, чтобы автоматизировать анализ текстов и логов.Команда nl в Linux — мощный инструмент для работы с текстовыми файлами. Она позволяет гибко управлять нумерацией строк, задавать формат вывода и интегрировать результаты в скрипты. Благодаря множеству параметров, таких как -b, -n, -w, -s, -v и -i, эта команда подходит не только для просмотра файлов, но и для автоматизированной обработки данных. Даже простые примеры показывают, что команда nl в Linux экономит время и делает работу с текстом в терминале удобнее и понятнее.