¿Cómo usar `cat` para ver la parte superior de un archivo muy largo?


18

Me gustaria saber como

cat my-verylong-file

y mostrarlo desde la parte superior en lugar del final. Como lo hace el comando man .


55
Para completar, también existe el morecomando ... pero como morees menos capaz que less, es muy cierto que "menos es más". Finalmente también hay pgpara "página". También puede usar estos comandos con tuberías, por ejemplo. ls -l | lesspara dividir una lista de archivos muy larga en varias páginas. E incluso podrías usarlo cat my-verylong-file | less.
Baard Kopperud

También vale la pena señalar que "Por defecto, el hombre usa / usr / bin / less -is". (de man man).
Trauma digital

Respuestas:


43

Use less, que mostrará el archivo desde la parte superior, permitiéndole desplazarse por él, tal como man:

less my-verylong-file
  • Presione qpara salir.

Si solo está interesado en ver las n primeras líneas de un archivo, headpuede ser una alternativa:

head -n 25 filename

mostrará las 25 primeras líneas del archivo.

Lo mismo para las n últimas líneas de un archivo con tail:

tail -n 25 filename

2
lesspodría usarse también para desplazar salidas muy largas de comandos. A continuación se presenta un ejemplo: ls -laR --color=always ~/ | less -R.
pa4080

2
Y el nombre del comando "less" es un juego de palabras con el nombre del comando "more" (que reemplaza más o menos), que a su vez fue nombrado desde el mensaje "--More" que dio. Bajo MacOS parece que más es el mismo binario que menos, por lo que la metamorfosis está completa :)
Thorbjørn Ravn Andersen

55
Entonces, ¿más o menos lo mismo?
Ryan The Leach

1
@ pa4080: puede configurarlo lesspara que -Resté habilitado de forma predeterminada. Mira mi respuesta.
Peter Cordes

@RyanTheLeach more y less : lo mismo :)
chepner

11

manutiliza less(1)como buscapersonas por defecto. Úselo en lugar de cat. Ver también la respuesta de @ vidarlo .

Cómo personalizarlo lesspara hacerlo aún mejor:

Me gusta alias m=less, así que es solo un comando de una letra, porque lo escribo todo el tiempo. Poner un |mal final de cualquier cosa lo canaliza en un buscapersonas.

Se puede poner como opciones -iMRj5Xen el alias (por ejemplo alias m='less -iMRX), pero hacer eso con mi ~/.lesskeyarchivo. (Ver lesskey(1))

  • -i: las búsquedas no distinguen entre mayúsculas y minúsculas (a menos que utilice mayúsculas)
  • -M: línea de estado más larga, que muestra el número de línea y el porcentaje de archivo
  • -R: permite algunos códigos de control, para que pueda canalizar comandos coloreados en menos.
  • -X: no cambie a la pantalla "alternativa" del emulador de terminal, por lo que lo que sea que esté viendo seguirá estando allí cuando qsalga de la aplicación less. (ideal para páginas de manual después de encontrar la opción que desea y desea verla mientras la escribe).
  • -j5: las búsquedas colocan la línea de destino en la fila 5 en lugar de la parte superior de la pantalla. Para que pueda ver el contexto en ambos lados de su resultado de búsqueda. (A veces cambio esto de forma interactiva, escribiendo -j40o algo dentro less, si es más útil ver el contexto antes de un resultado de búsqueda).

También me enlazo .a next-file, y ,a prev-file, porque los enlaces predeterminados son dos caracteres separados que son mucho más lentos para escribir: :ny :p.


Este es mi .lesskey:

$ cat .lesskey
. next-file
, prev-file
#env
LESS = iMRj5X

Ejecutar lesskeypara "compilarlo" en un ~/.less.

Esto probablemente importó hace más de 20 años, pero lesslee ese archivo binario en lugar de analizar un archivo de configuración de texto cada vez que se inicia.


@Dan: se agregó una línea en la parte superior para que esta respuesta pueda ser independiente como respuesta a la pregunta. Pensé que dejar esa parte implícita sería suficiente dada la otra respuesta, pero si no tengo ninguna objeción a hacerlo explícito si te estaba molestando.
Peter Cordes
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.