Есть ли команда, которая выводит файл с нумерацией строк, начинающий нумерацию в определенной строке?

cat -n file выводит file с нумерацией строк, но как я могу указать, на какой строке начать нумерацию? Есть ли команда, которая может это сделать?

Я думал о том, что, возможно, раскалывал процесс на несколько команд. Если я хочу начать нумерацию строк в строке N текстового файла file.txt , тогда:

  1. Распечатайте первые строки N-1 , à la head -$((N-1)) file.txt
  2. Распечатайте оставшиеся N строк, пронумерованных: tail -n N file.txt | cat -n tail -n N file.txt | cat -n

Но второй шаг невозможен, если вход от stdin ; первый шаг будет потреблять все это. Мне нужно создать временный файл для чтения, а затем удалить его, AFAIK.

One Solution collect form web for “Есть ли команда, которая выводит файл с нумерацией строк, начинающий нумерацию в определенной строке?”

Вы можете использовать awk для этого:

 awk 'NR >= n { printf("%6d ", NR-n+1) } 1' n=3 

Для строк, где текущий номер записи (NR) больше или равен n (передается как переменная), напечатайте префикс строки, начиная с 1. 1 в конце awk коротко для печати текущей строки.

Вы также можете использовать head(1) , поскольку она перестает потреблять входные данные, когда она считывает количество строк, в которых она нуждается:

 { head -$((N-1)); cat -n; } 

Вы можете подключиться к этому или перенаправить файл:

 cat foo | { head -$((N-1)); cat -n; } { head -$((N-1)); cat -n; } < foo 
  • Есть ли способ узнать количество строк из вывода команды?
  • Удалить последние n символов из -print0?
  • получить числовое значение ASCII для символа
  • Отображение отдельных значений списка и количества вхождений
  • Умный способ выполнить аналогичную замену (не достаточно простую для diff) в нескольких файлах?
  • Интерактивное удаление файлов, перечисленных с помощью путей в текстовом файле
  • Как извлечь определенные данные из потока MQTT
  • Получение имен групп для списка пользователей
  • Преобразование списка файлов, разделенных новыми строками, в переменную
  • Реорганизация строк в текстовом файле
  • Конкатенировать блок строк со следующим блоком линий
  • Скрипт, который будет читать 5 чисел, а затем сортировать с самого высокого на самый низкий
  • Linux и Unix - лучшая ОС в мире.