Si sabe que los archivos de entrada no tienen pestañas, use expand
simplifica la respuesta de @oyss:
paste one.txt two.txt | expand --tabs=50
Si pudiera haber pestañas en los archivos de entrada, siempre puede expandir primero:
paste <(expand one.txt) <(expand two.txt) | expand --tabs=50
Puedes usar pr
para hacer esto, usando el -m
marca para fusionar los archivos, uno por columna, y -t
para omitir encabezados, por ejemplo.
pr -m -t one.txt two.txt
salidas:
apple The quick brown fox..
pear foo
longer line than the last two bar
last line linux
skipped a line
Ver también:
- Imprimir el resultado del comando uno al lado del otro
- Combina archivos de texto por columnas
Para ampliar un poco la respuesta de @Hasturkun:por defecto pr
usa solo 72 columnas para su salida, pero es relativamente fácil hacer que use todas las columnas disponibles de su ventana de terminal:
pr -w $COLUMNS -m -t one.txt two.txt
La mayoría de los shells almacenarán (y actualizarán) el ancho de pantalla de tu terminal en el $COLUMNS
variable de shell, por lo que solo estamos pasando ese valor a pr
para usar para la configuración de ancho de su salida.
Esto también responde a la pregunta de @Matt:
¿Hay alguna forma de que pr detecte automáticamente el ancho de la pantalla?
Entonces, no:pr
en sí mismo no puede detectar el ancho de pantalla, pero lo estamos ayudando un poco al pasar el ancho de la terminal a través de su -w
opción.
Tenga en cuenta que $COLUMNS
es una variable de shell, no una variable de entorno, por lo que no se exporta a procesos secundarios y, por lo tanto, es probable que el enfoque anterior no funcione en secuencias de comandos, solo en TTY interactivos... consulte las variables ambientales LÍNEAS y COLUMNAS perdidas en una secuencia de comandos para enfoques alternativos.