Agradeceríamos tu apoyo para compartir nuestros ensayos sobre las ciencias de la computación.
Solución:
Solo necesitas el column
comando, y dígale que use pestañas para separar columnas
paste file1 file2 | column -s $'t' -t
Para abordar la controversia de la “celda vacía”, solo necesitamos -n
opción a column
:
$ paste <(echo foo; echo; echo barbarbar) <(seq 3) | column -s $'t' -t
foo 1
2
barbarbar 3
$ paste <(echo foo; echo; echo barbarbar) <(seq 3) | column -s $'t' -tn
foo 1
2
barbarbar 3
La página de manual de mi columna indica -n
es una "extensión Debian GNU / Linux". Mi sistema Fedora no presenta el problema de las celdas vacías: parece derivar de BSD y la página de manual dice "La versión 2.23 cambió la opción -s para que no sea codiciosa"
Estás buscando al dandy útil pr
mando:
paste file1 file2 | pr -t -e24
El "-e24" es "expandir tabuladores a 24 espacios". Afortunadamente, paste
pone un carácter de tabulación entre columnas, por lo que pr
puede expandirlo. Elegí 24 contando los caracteres en "Recursivamente enumerable" y agregando 2.
Actualizar: Aquí hay un script mucho más simple (que el que está al final de la pregunta) para la salida tabulada. Simplemente pase el nombre del archivo como lo haría paste
... Usa html
para hacer el marco, por lo que se puede modificar. Conserva varios espacios y la alineación de la columna se conserva cuando encuentra caracteres Unicode. Sin embargo, la forma en que el editor o visor representa el Unicode es otro asunto completamente ...
┌──────────────────────┬────────────────┬──────────┬────────────────────────────┐
│ Languages │ Minimal │ Chomsky │ Unrestricted │
├──────────────────────┼────────────────┼──────────┼────────────────────────────┤
│ Recursive │ Turing machine │ Finite │ space indented │
├──────────────────────┼────────────────┼──────────┼────────────────────────────┤
│ Regular │ Grammars │ │ ➀ unicode may render oddly │
├──────────────────────┼────────────────┼──────────┼────────────────────────────┤
│ 1 2 3 4 spaces │ │ Symbol-& │ but the column count is ok │
├──────────────────────┼────────────────┼──────────┼────────────────────────────┤
│ │ │ │ Context │
└──────────────────────┴────────────────┴──────────┴────────────────────────────┘
#!/bin/bash
sed -re 's#(.*)#x091x09#' -e 's#x09#
n
#g' -e 's#^
#
$#n