Как отображать номера строк в «меньше» (GNU)


660

Какова команда, чтобы сделать меньше отображаемых номеров строк в левом столбце?


80
lessутилита командной строки linux, и очень часто используется программистами для просмотра текстовых файлов Этот вопрос полностью посвящен теме переполнения стека в рамках «инструментов, используемых программистами», так же как и все вопросы, касающиеся использованияgit являются тематическими. Это также первое попадание в Google при поиске «меньше отображаемых номеров строк». Этот вопрос не должен быть закрыт.
Джон Диблинг

5
@JohnDibling Этот вопрос больше подходит для Unix & Linux Stack Exchange . Просто потому, что lessиспользуется программистами, не делает это по теме. Карандаши - это тоже «инструмент, используемый программистами», но вопрос о том, как точить карандаш, здесь не подходит.
Авгурар

17
@augurar Я думаю , что вы НЕ знаете , что инструменты здесь означает программные средства . Вы сознательно интерпретируете значение инструментов вне контекста. Кстати, я также думаю, что этот вопрос подходит для Unix & Linux Stack Exchange, но это не мешает этому вопросу быть здесь на SO :)
Gab 是 好人

Ответы:


979

Из руководства :

-N или --LINE-NUMBERS Вызывает отображение номера строки в начале каждой строки на дисплее.

Вы также можете переключать номера строк, не выходя меньше, набрав -N.

Таким способом можно переключать любые параметры командной строки less.


6
Когда я меньше огромного файла, то «G» в нижней части, он говорит «Расчет номеров строк ... (прерывание, чтобы прервать)», даже если он не отображает номера строк. Я хотел бы знать, как узнать, на какой линии я нахожусь, не выходя и не перезапускаясь с -N. Я страдаю от штрафа. Где награда?
Бруно Броноски

93
вау, я смотрел на помощь меньше десятков раз, надеясь найти ответ на этот вопрос. Я всегда упускал из виду «- <флаг> Переключить параметр командной строки [см. Ниже ОПЦИИ]». ... что означает, что вы можете набрать "-N" изнутри меньше. Меня это раздражало около десяти лет. Хорошие времена!
Бруно Броноски

2
Можно ли отображать номера строк другим цветом?
Грег

3
Привет @greg. Вы можете использовать, sedчтобы раскрасить номера строк и опцию, -Rчтобы позволить lessотображать цвета: cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R Вы также можете настроить LESSOPEN... Cheers;)
olibre

1
Нажмите ENTER / RETURN, если вы пытаетесь переключиться. После ввода -n или -N при использовании less, вам также может понадобиться нажать потом, чтобы изменения вступили в силу. Это даже говорит об этом внизу, но мой мозг не соединял точки, потому что я предполагал, что это будет мгновенно, и я продолжал печатать -N и задавался вопросом, почему цифры так и не появились.
abelito

146

Вы также можете нажать =пока lessоткрыто, чтобы просто отобразить (внизу экрана) информацию о текущем экране, включая номера строк, в формате:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)

Так вот, например, на экране в настоящее время отображаются строки 20530-20585, а в файлах есть всего 1816468строк.


44

Вы можете отфильтровать файл cat -nдо того, как отправлять less:

cat -n file.txt | less

Или, если ваша версия lessподдерживает это, -Nопция:

less -N file.txt

4
Какие версии менее известны, что вы не поддерживаете?
Аарон Холл

Я обычно использую nl вместо cat -n
ychaouche

32

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

export LESS='-RS#3NM~g'

2
Линия alias less="LESS='-RS#3NM~g' less"в .bashrcмой день! Спасибо!
Жюри

4
Объяснение этого заклинания было бы очень кстати :)
minexew

3
Варианты: R = лучшая обработка необработанных цветовых кодов в файлах. S = Прокрутка длинных строк с экрана вместо переноса слов. # 3 = прокрутка вправо / влево на 3 позиции одновременно. N = показать номера строк. M = более длинные подсказки. ~ = Вместо отображения пустого пространства после того, как файл заканчивается на ~, ничего не отображать для пустого пространства. g = при выполнении поиска с помощью 'g', выделите только текущее совпадение вместо всех совпадений.
Брайан

17

Флаги командной строки -Nили--LINE-NUMBERS заставляет отображать номер строки в начале каждой строки на дисплее.

Вы также можете переключать номера строк без выхода less, печатая -N<return>. lessТаким образом можно переключать любые параметры командной строки.


1
Передача -N или --LINE-NUMBERS показывает только дату для меня в CentOS 5.3. Однако использование -N после запуска менее хорошо работает.
Майк Миллер

15

Если вы нажмете =и ожидаете увидеть номера строк, но увидите только количество байтов, то номера строк будут отключены. Нажмите, -nчтобы включить их, и убедитесь, что $LESSони не содержат «n».

Отключение номеров строк по умолчанию (например, настройка LESS=n) ускоряет поиск в очень больших файлах. Это удобно, если вы часто просматриваете большие файлы, но обычно вам все равно, на какой строке вы находитесь.

Я обычно запускаю с LESS=RSXin(escape-коды включены, длинные строки обрезаются, не очищает экран при выходе, игнорирует регистр при всех поисках в нижнем регистре и не учитывает номер строки по умолчанию) и использую только -nили -Sизнутри по lessмере необходимости.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.