Команда Linux nl

Linux 命令大全Справочник команд Linux


1. Обзор команды nl

nlЭто простой, но практичный инструмент командной строки в системе Linux, его полное название — "number lines" (нумерация строк). Его основная функция — читать содержимое файла, добавлять номер строки к каждой строке и затем выводить результат в стандартный вывод.

1.1 Зачем нужна команда nl?

В повседневной разработке или системном администрировании нам часто нужно:

  • Быстро просматривать определённые строки кода или лог-файлы
  • Удобно ссылаться на конкретные номера строк при обсуждении содержимого файла
  • Нумеровать содержимое файла для последующей обработки
  • Создавать документы или отчёты с номерами строк

Хотяcat -nтакже может обеспечить аналогичную функциональность, ноnlпредоставляет более широкие возможности управления нумерацией строк, которые могут удовлетворить более сложные потребности.


2. Базовый синтаксис и параметры

2.1 Базовый формат команды

Пример

nl [Опция]... [Файл]...

2.2 Описание общих опций

Опция Описание
-b Задать правило вычисления номера строки (за которым следует стиль)
-i Задать приращение номера строки (по умолчанию 1)
-n Задать формат номера строки (с выравниванием по левому краю/по правому краю/без дополнения нулями)
-s Задать разделитель между номером строки и содержимым
-v Задать начальный номер строки (по умолчанию 1)
-w Задать ширину поля номера строки (количество символов)
-p Не сбрасывать номера строк при разрывах страниц

2.3 Правила расчёта номеров строк (опция -b)

-bПосле опции могут следовать следующие стили:

Style Описание
a Нумеровать все строки
t Нумеровать только непустые строки (по умолчанию)
n Не нумеровать
p正则表达式 Нумеровать только строки, соответствующие регулярному выражению

3. Демонстрация практических примеров

3.1 Базовое использование: добавление номеров строк в файл

Пример

# Добавить номера строк ко всем непустым строкам example.txt
nl example.txt

# Добавить номера строк ко всем строкам (включая пустые строки)
nl -b a example.txt

3.2 Настройка формата нумерации строк

Пример

# Установить ширину номера строки равной 3, используя формат с выравниванием по правому краю
nl -n rz -w 3 example.txt

# Использовать "|" в качестве разделителя, номера строк выровнены по левому краю
nl -s " | " -n ln example.txt

3.3 Расширенные правила нумерации

Пример

# Начать нумерацию с 10 с шагом 2
nl -v 10 -i 2 example.txt

# Нумеровать только строки, содержащие "error"
nl -b perror example.log

3.4 Обработка нескольких файлов

Пример

# Нумеровать несколько файлов последовательно
nl file1.txt file2.txt

# Нумеровать каждый файл отдельно
nl -p file1.txt file2.txt

4. Сравнение с другими командами

4.1 nl vs cat -n

Характеристика nl cat -n
Поведение по умолчанию Нумеровать только непустые строки Нумеровать все строки
Управление форматом Расширенный (выравнивание, ширина, разделитель и т. д.) Ограниченно
Правила нумерации Настраиваемый (сопоставление с регулярными выражениями и т. д.) Фиксированные
Производительность Немного медленнее Немного быстрее

4.2 nl vs grep -n

grep -nОн также содержит номера строк, но его основное назначение — поиск, а номера строк — всего лишь дополнительная информация.nlnl, с другой стороны, — это инструмент, специально оптимизированный для отображения номеров строк.


5. Практические сценарии применения

5.1 Обзор кода

Пример

# Сгенерировать код с номерами строк для удобного обсуждения
nl -w 3 -n rz source.py⟧2⟧numbered_source > numbered_source.txt

5.2 Анализ логов

Пример

# Нумеровать только строки лога, содержащие "ERROR"
nl -b pERROR app.log | less

5.3 Обработка документов

Пример

# Сгенерировать документ Markdown с номерами строк
nl -s ". " -w 2 -n rz README.md

6. Заметки и советы

  1. Обработка пустых строк: По умолчанию,nlпустые строки пропускаются; используйте-b aчтобы принудительно пронумеровать все строки.
  2. Обработка больших файлов: Для очень больших файлов рассмотрите объединениеlessилиheadчтобы использовать
  3. Использование в конвейере: Он может принимать стандартный ввод, напримерcat file | nl
  4. Согласованность формата: Рекомендуется использовать фиксированный набор параметров в скриптах, чтобы обеспечить единообразный формат вывода.
  5. Соображения производительности: Для простых задач нумерации строк,cat -nможет быть быстрее.

7. Резюме и упражнения

7.1 Практические задания

  1. Создайте тестовый файлtest.txtСодержит 5 строк текста и 2 пустые строки
  2. Используйтеnlчтобы отобразить все номера строк (включая пустые строки)
  3. Установите нумерацию строк так, чтобы она начиналась с 100 с шагом 5
  4. Используйте "::" в качестве разделителя и ширину номера строки 4
  5. Перенаправьте результат вnumbered.txt

7.2 Эталонные ответы

Пример

# Создайте тестовый файл
echo -e "Первая строка\n\nВторая строка\nТретья строка\n\nЧетвёртая строка\nПятая строка" > test.txt

# Выполните команду nl
nl -b a -v 100 -i 5 -s "::" -w 4 test.txt > numbered.txt

# Просмотреть результат
cat numbered.txt

Linux 命令大全Справочник команд Linux

Другие расширения