En * nix, cómo se muestra (cat) un archivo sin línea de envolver: las líneas más largas se deben cortar de forma que quepan en el ancho de la pantalla.archivo cat sin línea de envolvente
Respuesta
Tenga en cuenta que cut
acepta un nombre de archivo como argumento.
Esto parece funcionar para mí:
watch 'bash -c "cut -c -$COLUMNS file"'
Para las pruebas, que añaden un margen derecho:
watch 'bash -c "cut -c -$(($COLUMNS-10)) file"'
Cuando cambia el tamaño de mi terminal, el truncamiento se actualiza para que coincida.
Tal vez está buscando para fmt
:
fmt file
Esto cambia el formato bastante agresiva su texto, por lo que puede hacer más de lo que desea.
Alternativamente, el comando cut
puede cortar texto a un ancho de columna específica, descartando el texto más allá del margen derecho:
cat file | cut -c1-80
Otra opción útil es el comando less -S
, que muestra un archivo en una ventana de pantalla completa con izquierda/derecha desplazamiento de las líneas largas:
less -S file
De hecho, se hace más que quiero: concatena líneas. – Alexandru
En realidad, estoy viendo el contenido del archivo usando watch "cat file" así que no puedo usar menos. cat archivo | corte -c1-80 hizo el truco, parcialmente. ¿Hay alguna forma de ajustar el corte al tamaño de la pantalla? – Alexandru
Puede tener la variable de entorno '$ COLUMNS' definida: intente ' cortar -c1- $ archivo COLUMNS' – mob
como otros han dicho, la respuesta es cut -c ...
, pero para añadir algo dinámico a ella, prefiero esto:
cat file.txt |cut -c -$(tput cols)
para alternar largo de ajuste de línea en menos. Predeterminado es para envolver.
- `less file`
- in file type `"-S"` to toggle to truncate on line width
- to toggle back `"-S"` again.
También puedes llamar' less' con '-S' como opción : 'less -s file' o incluirlo en su entorno:' export LESS = "- S" '(más otras opciones). En cualquier caso, aún puede usar el botón de alternar una vez que se está ejecutando, si lo desea. –
El uso de cut
no toma en cuenta que las pestañas se consideran un solo carácter \t
pero se imprime como 8 espacios en blanco. Por lo tanto, un archivo con pestañas se cortará en diferentes columnas percibidas.
less -S
trunca el texto de forma óptima, también en presencia de pestañas, pero AFAIK no se puede utilizar para imprimir de forma no interactiva el archivo "picado".
una solución de trabajo es convertir las lengüetas en espacios a través de expand
y luego cut
la salida: expand < file | cut -c -$(tput cols)
'expand' es una gran ayuda; gracias, solo estaba luchando con este problema (con pestañas). ¡Me alegro de haber bajado hasta el fondo! – Lambart
- 1. Fusionando dos archivos con cat sin línea nueva
- 2. cat archivo | ... vs ... <archivo
- 3. KornShell (ksh) envolvente
- 4. ¿Cómo "cat" un archivo en JGit?
- 5. Vim: texto envolvente ("gq") sin modificar los títulos subrayados
- 6. Equivalente en git de "hg cat" o "svn cat"
- 7. Cómo restar dos entradas sin firmar con envolvente o desbordamiento
- 8. Vim: texto envolvente (es decir, "gq") sin romper cadenas?
- 9. shell - cat - fusiona contenido de archivos en un gran archivo
- 10. uiwebview problema de envolvente con palabras largas
- 11. Cómo usar apply, cat e print, sin obtener NULL
- 12. ¿Cómo implemento `cat` en Haskell?
- 13. bash cat contenido de archivos múltiples en una sola cadena sin nuevas líneas
- 14. La desactivación del comando cat
- 15. Comprobación de envolvente con Ksoap2 (Android)
- 16. La lectura de un archivo sin saltos de línea
- 17. Filtrado de una matriz de objetos usando jQuery $ .grep sin un objeto envolvente
- 18. Combinando echo y cat en Unix
- 19. ¿Es mejor que dd cat?
- 20. Unix: anteponer un archivo sin un archivo ficticio?
- 21. "Scala no es una clase envolvente"
- 22. Escribiendo cat en OCaml: uso de Unix.read
- 23. ¿Cómo programo el uso de cat?
- 24. Leer línea desde archivo sin conocer la longitud de la línea
- 25. Bash: cat archivos múltiples de la lista de archivos
- 26. Hacer texto envolvente dentro de un div totalmente posicionado
- 27. Error de respuesta de envolvente SOAP: Error al leer XMLStreamReader
- 28. C Eliminar la primera línea de un archivo de texto sin reescribir el archivo
- 29. ¿Por qué mi función "cat" con llamadas al sistema es más lenta en comparación con "cat" de Linux?
- 30. NSLog sin línea nueva
Cuando ejecuto el script 'watch./Colscript', veo 80 mostrados. Cuando cambio el ancho arrastrando el borde de la ventana (estoy usando PuTTY) el número cambia para coincidir. ¿Que ves? –
No veo nada, pero descubrí por qué: diferentes versiones de bash. reloj ./colscript funciona en bash 4.0 (mi computadora), pero no en bash 3.0 (una computadora remota). ./colscript no funciona en ninguna de las dos versiones. – Alexandru
'echo $ BASH_VERSION' me da" 3.2.48 (1) -release "La razón por la que ejecutar'./Colscript' desde la línea de comando hace eco de una línea en blanco es que '$ COLUMNS' solo se llena para las shells interactivas. Puedes intentar agregar '-i' al final de la primera línea de'./Colscript' para que tengas '#!/Bin/bash -i' –