nl

Что делает команда nl в Linux

Команда nl в Linux используется для нумерации строк в текстовых файлах. Она особенно полезна при анализе логов, просмотре длинных конфигурационных файлов и подготовке текстов для отладки. В отличие от команды cat -n, которая просто добавляет номера ко всем строкам, команда nl в Linux имеет гибкие параметры форматирования, позволяющие управлять нумерацией, пропуском пустых строк и стилем вывода.

Простая команда для начала работы:

Bash
nl file.txt

Этот пример выведет содержимое файла с добавлением номеров строк. По умолчанию нумеруются только непустые строки.

Основные параметры команды nl в Linux

Параметр -b: способ нумерации строк

Опция -b определяет, какие строки будут нумероваться. Возможные значения:

  • -b a — нумеровать все строки, включая пустые.
  • -b t — нумеровать только непустые строки (значение по умолчанию).

Пример:

Bash
nl -b a script.sh

Здесь команда nl в Linux нумерует каждую строку, даже если она пустая. Это удобно при анализе исходного кода, когда важно знать точную позицию каждой строки.

Параметр -n: формат отображения номера

Опция -n определяет, как отображаются номера строк. Доступные варианты:

  • -n ln — номер выровнен по левому краю;
  • -n rn — номер выровнен по правому краю (по умолчанию);
  • -n rz — номер выровнен по правому краю и дополняется нулями.

Пример:

Bash
nl -n rz config.yaml

Вывод будет содержать номера строк с ведущими нулями, например 001, 002, 003 — что полезно при сравнении или автоматической обработке файлов.

Параметр -w: ширина поля для номера

Опция -w задает количество символов, выделяемое под номер строки. По умолчанию используется ширина 6 символов.

Bash
nl -w 3 data.txt

Здесь команда nl в Linux выведет номера в формате 001, 002 и т.д., занимая ровно три символа. Это помогает сделать вывод более компактным.

Параметр -s: разделитель между номером и строкой

Опция -s задает разделитель между номером строки и содержимым. По умолчанию используется табуляция.

Bash
nl -s ': ' file.txt

Теперь вывод будет выглядеть так:

Bash
1: строка 1
2: строка 2
3: строка 3

Совет: если вы планируете использовать вывод в скриптах, лучше указать простой разделитель вроде -s ' ' или -s ',' для удобного парсинга строк.

Расширенные параметры и форматирование

Параметр -v: начальное значение нумерации

Если требуется начать нумерацию не с 1, а с любого другого числа, используйте -v:

Bash
nl -v 100 report.log

В этом примере команда nl в Linux начнет нумерацию строк с 100. Это полезно при объединении нескольких файлов с сохранением логической последовательности строк.

Параметр -i: шаг нумерации

Параметр -i задает шаг, с которым увеличивается номер строки.

Bash
nl -i 5 sample.txt

В результате строки будут пронумерованы 1, 6, 11, 16 и т.д. Такой подход удобен при создании отчетов или при подготовке таблиц с нестандартной нумерацией.

Параметр -p: сохранение нумерации между страницами

По умолчанию при разделении файла на “страницы” нумерация может сбрасываться. Опция -p сохраняет непрерывную нумерацию:

Bash
nl -p longfile.txt

Это гарантирует, что номера строк останутся последовательными независимо от структуры файла.

Примеры использования команды nl в Linux на практике

  1. Нумерация строк в исходниках: nl -b a -n rz -w 4 -s ' | ' main.py Этот пример выведет файл main.py с нумерацией всех строк, включая пустые, в формате: 0001 | import os 0002 | 0003 | def run():
  2. Создание файла с номерами строк для анализа логов: nl -b a system.log > numbered_log.txt Теперь лог будет удобно читать, а ссылки на конкретные строки можно использовать при отладке.
  3. Совмещение с 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 экономит время и делает работу с текстом в терминале удобнее и понятнее.