Команда nl в Linux: добавление номеров строк в текстовые файлы

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


Что делает команда nl ?

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


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

Предположим, у вас есть файл с именем hello-world.sh содержащий следующий скрипт:

#!/bin/bash
#
#This is a demo script that greets the world
#Author: Jose Navarro Varela
#Usage: ./hello-world.sh

clear
echo hello world
exit 0

Чтобы отобразить файл с номерами строк, просто выполните:

nl hello-world.sh

Вывод будет выглядеть так:

     1 #!/bin/bash
     2 #
     3 #This is a demo script that greets the world
     4 #Author: Jose Navarro Varela
     5 #Usage: ./hello-world.sh
     6 clear
     7 echo hello world
     8 exit 0

По умолчанию команда nl нумерует только непустые строки.


Нумерация всех строк (включая пустые)

Чтобы включить пустые строки в нумерацию, используйте опцию -b a :

nl -b a hello-world.sh

Вывод будет выглядеть так:

     1 #!/bin/bash
     2 #
     3 #This is a demo script that greets the world
     4 #Author: Jose Navarro Varela
     5 #Usage: ./hello-world.sh
     6
     7 clear
     8 echo hello world
     9 exit 0

Добавление пользовательского разделителя

Команда nl позволяет настроить разделитель между номерами строк и текстом с помощью опции -s . Например, чтобы добавить ... в качестве разделителя:

nl -s "..." hello-world.sh

Вывод будет выглядеть так:

1...#!/bin/bash
2...#
3...#This is a demo script that greets the world
4...#Author: Jose Navarro Varela
5...#Usage: ./hello-world.sh
6...
7...clear
8...echo hello world
9...exit 0

Дополнительные опции

Команда nl предлагает дополнительные опции для настройки, например:

  • -w: Задаёт ширину поля номера строки.
  • -n: Определяет формат нумерации (по правому краю, по левому краю или с заполнением нулями).

Вы можете изучить все доступные опции, обратившись к странице руководства с помощью:

man nl

Распространённые сценарии использования команды nl

Команда nl широко используется в различных ситуациях. Ниже приведены некоторые из наиболее распространённых сценариев:

1. Отладка shell-скриптов

При отладке shell-скрипта вам может потребоваться ссылаться на конкретные строки, в которых возникают ошибки. Использование команды nl для добавления номеров строк облегчает поиск проблемных строк.

Пример:

nl my-script.sh

2. Подготовка документации или рецензирования кода

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

Пример:

nl config.conf > numbered-config.conf

3. Просмотр больших текстовых файлов

При работе с большими файлами журналов, конфигурации или данных добавление номеров строк помогает ориентироваться и ссылаться на конкретные разделы.

Пример:

nl /var/log/syslog

4. Сравнение файлов с номерами строк

Добавление номеров строк к файлам перед их сравнением облегчает выявление различий.

Пример:

nl file1.txt > numbered-file1.txt
nl file2.txt > numbered-file2.txt
diff numbered-file1.txt numbered-file2.txt

5. Форматирование вывода для отчётов

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

Пример:

nl report.txt > numbered-report.txt

6. Просмотр скриптов с номерами пустых строк

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

Пример:

nl -b a script.sh

7. Настройка номеров строк для конкретных форматов

При представлении пронумерованных текстовых файлов вам могут понадобиться пользовательские разделители или форматирование.

Пример:

nl -s " -> " textfile.txt

Зачем использовать команду nl ?

Команда nl — это простой, но мощный инструмент для:

  • Отладка скриптов путём определения конкретных строк.
  • Добавление номеров строк в текстовые файлы для более удобной навигации.
  • Подготовка отформатированного вывода для документации или совместного использования.

Оставить комментарий