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

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

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

  • Перейдите в каталог, в котором находится исполняемая команда
  • Объединить текстовые файлы с 1-м столбцом и разницу в выходном файле
  • Замените что-либо между круглыми скобками, даже если они охватывают несколько строк
  • Как подождать, пока команда mv завершится в unix?
  • Подстановочный знак имени файла
  • Что означает скобка в описании команды, например «mklost + found (8)»
    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.

  • Получить список из 3 буквенных команд в Mac OS X
  • Замена столбца «время» соответствующими значениями
  • Многовариантные для циклов
  • Использование find и sed для копирования 20-й строки многих файлов в один файл
  • Разбиение файла на каждые 10000 номеров (не строк)
  • Как извлечь определенные данные из потока MQTT
  • 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 
    Linux и Unix - лучшая ОС в мире.