linux - picard - puddletag
Formateo de listas con el comando de columna en*nix (2)
Estoy tratando de formatear una lista de entradas en bash, y estoy usando el comando de column
. Sin embargo, la opción -t
utiliza de manera predeterminada cualquier espacio en blanco como delimitador, lo que no funciona para los datos que tengo (contiene espacios y pestañas). No puedo entender cómo obtener el -s
para especificar un carácter de nueva línea como el único delimitador de columna.
En teoría, para especificar una nueva línea, puede usar la notación $''...''
, que es como ''...''
excepto que admite secuencias de escape estilo C:
column -t -s $''/n'' list-of-entries.txt
Sin embargo, realmente no entiendo el propósito de esto. Una línea nueva es el delimitador de fila, por lo que un delimitador de columna de $''/n''
es equivalente a no tener ningún delimitador de columna:
column -t -s '''' list-of-entries.txt
lo que significa que la entrada se tratará como teniendo solo una columna; por lo que es equivalente a no usar la column
en absoluto:
cat list-of-entries.txt
Parece que en realidad no desea utilizar el -t
, porque el objetivo del -t
es garantizar que cada línea de entrada se convierta en una línea de salida, y no suena como eso es lo que desea. Supongo que quieres esto:
column list-of-entries.txt
que tratará cada línea de list-of-entries.txt
como un valor que se colocará en una celda de la tabla que muestra la column
.
Esto funciona para imprimir una bonita versión impresa de un archivo delimitado por tabuladores
column -t -s $''/t'' list-of-entries.txt