Как добавить номера строк в текстовые файлы в Linux
Вы когда-нибудь задумывались, как добавить номера строк в стандартный вывод текстовых файлов? В этом кратком руководстве объясняется, как добавлять номера строк в данный текстовый файл. Существует несколько способов добавления номеров строк в файл. Здесь я рассмотрел 6 различных способов сделать это. Я буду продолжать добавлять новые методы, если столкнусь с ними в будущем. Лучше добавьте это руководство в закладки и зайдите позже, чтобы посмотреть, есть ли какие-то дополнения.
Способ 1 — использование команды «nl»
Команда «nl» предназначена для добавления номеров строк в файл. Он записывает данный файл в стандартный вывод с добавлением номеров строк. У меня есть файл с именем file.txt со следующим содержимым.
$ cat file.txt
This is line1
This is line2
This is line3
This is line5
This is line8
Как вы видите в приведенном выше выводе, файл содержит 8 строк, три из которых пустые. Добавим номера строк.
Для этого запустите:
$ nl file.txt
1 This is line1
2 This is line2
3 This is line3
4 This is line5
5 This is line8
Команда nl не учитывает пустые строки. Он добавит числа только в непустые строки. Если вы хотите пронумеровать все строки, включая пустые, используйте флаг -b, как показано ниже.
$ nl -b a file.txt
1 This is line1
2 This is line2
3 This is line3
4
5 This is line5
6
7
8 This is line8
Кроме того, вы можете добавить символ/специальный символ после цифр. Например, чтобы добавить точку (.) после чисел, выполните:
$ nl -s "." file.txt
1.This is line1
2.This is line2
3.This is line3
4.This is line5
5.This is line8
Возможно, вы захотите выровнять ширину вывода. Для этого используйте флаг -w, как показано ниже.
nl -w2 file.txt
Способ 2 — использование команды «кошка»
Команда cat используется для отображения содержимого файла. Если вы хотите добавить числа к выводу файла, используйте флаг -n, как показано ниже.
$ cat -n file.txt
1 This is line1
2 This is line2
3 This is line3
4
5 This is line5
6
7
8 This is line8
Альтернативно вы можете передать стандартный вывод в новый файл, как показано ниже.
cat -n file.txt > newfile.txt
Вы также можете избавиться от повторяющихся пустых строк.
$ cat -s -n file.txt
1 This is line1
2 This is line2
3 This is line3
4
5 This is line5
6
7 This is line8
Способ 3 — использование команды «awk»
Чтобы добавить номера строк в выходные данные файла с помощью команды awk, выполните:
$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt
1.This is line1
2.This is line2
3.This is line3
4.
5.This is line5
6.
7.
8.This is line8
Как вы могли заметить, я присвоил стартовый номер 1 в параметре BEGIN. Вы можете назначить любой другой стартовый номер по вашему выбору, например 5, как показано ниже.
$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt
5.This is line1
6.This is line2
7.This is line3
8.
9.This is line5
10.
11.
12.This is line8
Используйте следующую команду, если вы не хотите учитывать пустые строки:
awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt
Если вы считаете, что приведенные выше команды сложно запомнить, используйте вместо них следующую команду.
$ awk '{ print FNR " " $0 }' file.txt
1 This is line1
2 This is line2
3 This is line3
4
5 This is line5
6
7
8 This is line8
Если вы хотите увеличить пространство между числами и текстом, запустите:
awk '{ print FNR "\t " $0 }' file.txt
Способ 4. Использование команды «sed»
Чтобы добавить номера строк в стандартный вывод файла с помощью команды sed, выполните:
$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
1 This is line1
2 This is line2
3 This is line3
5 This is line5
8 This is line8
У команды sed есть замечательная функция, которая мне нравится больше всего. Мы можем отобразить N-ю строку из файла. Например, чтобы отобразить третью строку файла, выполните:
sed -n 3p file.txt
This is line3
Способ 5 — использование команды «меньше»
Чтобы указать номер строки в стандартном выводе файла с помощью команды less, выполните:
$ less -N file.txt
1 This is line1
2 This is line2
3 This is line3
4
5 This is line5
6
7
8 This is line8
Способ 6. Использование команды grep
Команду grep можно использовать для поиска строки, содержащей определенную строку. Если вы хотите добавить номера строк к строке с определенной буквой, например line, выполните:
$ grep -n "line" file.txt
1:This is line1
2:This is line2
3:This is line3
5:This is line5
8:This is line8
Обратите внимание, что эта команда добавит числа только к строкам, содержащим строку поиска. Все остальное в данном файле будет опущено.
И это все. Более подробную информацию о вышеуказанных командах можно найти на страницах руководства. Теперь вы знаете различные способы добавления номеров строк в текстовые файлы. Надеюсь, вы найдете это полезным. Впереди еще больше хороших вещей. Следите за обновлениями!
Ваше здоровье!