Cómo mostrar números de línea en 'menos' (GNU)


660

¿Cuál es el comando para hacer menos números de línea de visualización en la columna izquierda?


80
lesses una utilidad de línea de comandos de Linux, y es muy utilizada por los programadores para ver archivos de texto. Esta pregunta es sólidamente sobre el tema de Stack Overflow bajo el dominio de "herramientas utilizadas por los programadores" al igual que todas las preguntas relacionadas con el uso gitson sobre el tema. También es el primer éxito en Google cuando busca "menos números de línea de presentación". Esta pregunta no debe cerrarse.
John Dibling

55
@JohnDibling La pregunta es más apropiada para Unix y Linux Stack Exchange . El hecho de que lesssea ​​utilizado por los programadores no lo convierte en un tema. Los lápices son "herramientas utilizadas por los programadores" también, pero una pregunta sobre cómo afilar un lápiz no sería apropiada aquí.
augurar

17
@augurar Creo que SABES que las herramientas aquí significan herramientas de software . Está interpretando deliberadamente el significado de las herramientas fuera del contexto. Por cierto, también creo que esta pregunta es apropiada para Unix & Linux Stack Exchange, pero no impide que esta pregunta esté aquí en SO :)
Gab 是 好人

Respuestas:


979

Del manual :

-N o --LINE-NUMBERS Hace que se muestre un número de línea al comienzo de cada línea en la pantalla.

También puede alternar números de línea sin salir menos escribiendo -N.

Es posible alternar cualquiera de las opciones de línea de comando de less de esta manera.


66
Cuando escribo un archivo menos grande y luego "G" en la parte inferior, dice "Calculando números de línea ... (interrumpir para abortar)" aunque no muestre números de línea. Me gustaría saber cómo saber en qué línea estoy sin salir y relanzar con -N. Estoy sufriendo la pena. ¿Dónde está la recompensa?
Bruno Bronosky el

93
wow, he visto la ayuda por menos decenas de veces esperando encontrar la respuesta a esto. Siempre he pasado por alto "- <flag> Alternar una opción de línea de comando [ver OPCIONES a continuación]". ... lo que significa que puede escribir "-N" desde menos. Me ha molestado esto durante aproximadamente una década. ¡Buenos tiempos!
Bruno Bronosky el

2
¿Es posible mostrar los números de línea en un color diferente?
greg

3
Hola @greg Puede usar sedpara colorear los números de línea y la opción -Rpara permitir que se lessmuestren los colores: cat -n file.txt | sed 's/^[ 0-9]*[0-9]/\o033[34m&\o033[0m/' | less -R También puede personalizar LESSOPEN... Saludos;)
olibre

1
Presione ENTER / RETURN si está intentando alternar. Después de escribir -n o -N mientras usa less, es posible que también deba presionarlo para que los cambios surtan efecto. Incluso lo dice en la parte inferior, pero mi cerebro no conectó los puntos porque supuse que sería instantáneo y seguí escribiendo -N y me preguntaba por qué los números nunca aparecieron.
abelito

146

También puede presionar =mientras lessestá abierto para mostrar (en la parte inferior de la pantalla) información sobre la pantalla actual, incluidos los números de línea, con formato:

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

Entonces, por ejemplo, la pantalla mostraba líneas 20530-20585y los archivos tienen un total de 1816468líneas.


44

Puede filtrar el archivo cat -nantes de conectarlo a less:

cat -n file.txt | less

O, si su versión de lo lessadmite, la -Nopción:

less -N file.txt

44
¿Qué versión (s) de menos es consciente de que no es compatible?
Aaron Hall

Usualmente uso nl en lugar de cat -n
ychaouche

32

Puede establecer una variable de entorno para que siempre se apliquen estas opciones a todos los archivos menos:

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

2
Line alias less="LESS='-RS#3NM~g' less"in .bashrchizo mi día! ¡Gracias!
Jurado el

44
Una explicación de este encantamiento sería muy bienvenida :)
minexew

3
Las opciones son: R = mejor manejo de códigos de color sin procesar en archivos. S = Desplazar largas líneas fuera de la pantalla en lugar del ajuste de palabras. # 3 = desplazarse hacia la derecha / izquierda por 3 posiciones a la vez. N = mostrar números de línea. M = indicaciones más largas. ~ = En lugar de mostrar el espacio vacío después de que un archivo termina con ~, no muestre nada para el espacio en blanco. g = cuando realiza una búsqueda con 'g', solo resalte la coincidencia actual en lugar de todas las coincidencias.
Bryan

17

La línea de comando marca -No --LINE-NUMBERShace que se muestre un número de línea al comienzo de cada línea en la pantalla.

También puede alternar los números de línea sin salir lessescribiendo -N<return>. Es posible alternar cualquiera de lesslas opciones de línea de comando de esta manera.


1
Pasar -N o --LINE-NUMBERS solo me muestra la fecha en CentOS 5.3. Sin embargo, usar -N después de comenzar menos funciona bien.
Mike Miller

15

Si presiona =y espera ver números de línea, pero solo ve el recuento de bytes, entonces los números de línea se desactivan. Presiona -npara encenderlos y asegúrate de $LESSque no incluya 'n'.

Desactivar los números de línea de forma predeterminada (por ejemplo, configuración LESS=n) acelera las búsquedas en archivos muy grandes. Es útil si busca con frecuencia archivos grandes, pero generalmente no le importa en qué línea se encuentra.

Por lo general, ejecuto con LESS=RSXin(códigos de escape habilitados, líneas largas cortadas, no borro la pantalla al salir, ignoro mayúsculas y minúsculas en todas las búsquedas en minúsculas, y no cuenta el número de línea por defecto) y solo uso -no -Sdesde adentro lesssegún sea necesario.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.