Переход к определенному номеру строки с помощью Less в Unix

У меня есть файл, в котором около миллиона строк. Мне нужно перейти к строке номер 320123, чтобы проверить данные. Как мне это сделать?


person Stole    schedule 21.12.2011    source источник
comment
Что насчет того, чтобы сделать это с more? :-)   -  person matanster    schedule 03.01.2018


Ответы (5)


Если n - это номер строки:

  • ng: переход к строке номер n. По умолчанию это начало файла.
  • nG: перейти к строке номер n. По умолчанию это конец файла.

Итак, чтобы перейти к строке с номером 320123, вы должны ввести 320123g.

Скопировано прямо из Википедии.

person n1r3    schedule 21.12.2011
comment
... и не нажимайте Enter после g, иначе вы перепрыгнете на одну строку дальше. - person HongboZhu; 14.01.2020
comment
Этот и другие ответы работают для версии BusyBox для less: less 9581553g -N file.txt less: can't open '9581553g': No such file or directory, а также: less +G -N file.txt less: can't open '+G': No such file or directory - person Wimateeka; 23.07.2020
comment
@Wimateeka, вы должны вводить эти команды в less, а не в оболочке. Сначала вы открываете файл less file.txt, а затем вводите свою команду 9581553g - person Stalinko; 26.10.2020
comment
В этом гораздо больше смысла. Я рассматривал это как sed или awk, где вы могли указать конкретные номера строк в качестве параметров. Спасибо за разъяснения. - person Wimateeka; 26.10.2020

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

less +320123 filename

Если вы хотите увидеть и номера строк:

less +320123 -N filename

Вы также можете выбрать отображение определенной строки файла в определенной строке терминала, когда вам нужно несколько строк контекста. Например, это откроет файл со строкой 320123 в 10-й строке терминала:

less +320123 -j 10 filename
person Ian Mackinnon    schedule 06.03.2014

Вы также можете использовать sed для этого -

sed -n '320123'p filename 

Будет напечатан номер строки 320123.

Если вам нужен диапазон, вы можете сделать -

sed -n '320123,320150'p filename 

Если хотите от конкретной строчки до самого конца, то -

sed -n '320123,$'p filename 
person jaypal singh    schedule 21.12.2011

Изнутри меньше (в Linux):

 g and the line number to go forward

 G and the line number to go backwards

Используемые отдельно, g и G переместят вас к первой и последней строке файла соответственно; используются с числом, они оба эквивалентны.

Пример; вы хотите перейти к строке 320123 файла,

нажмите 'g' и после двоеточия введите число 320123

Кроме того, вы можете ввести «-N» внутри less, чтобы активировать / деактивировать номера строк. Фактически, вы можете передавать любые ключи командной строки изнутри программы, такие как -j или -N.

ПРИМЕЧАНИЕ. Вы можете указать номер строки в командной строке, чтобы начать меньше (меньше + число -N), что будет намного быстрее, чем выполнение этого изнутри программы:

less +12345 -N /var/log/hugelogfile

Это откроет файл, отображающий номера строк и начинающийся со строки 12345.

Источник: человек на 1 меньше, встроенная справка меньше (меньше 418)

person runlevel0    schedule 28.03.2014
comment
интересно, Google решил взять часть вашего ответа для отображаемого ответа при поиске в Google: less go to line (хороший ответ imo) - person Matthias; 06.12.2016

Для редактирования это возможно в nano через +n из командной строки, например,

nano +16 file.txt

Чтобы открыть file.txt до строки 16.

person djechlin    schedule 12.06.2013