tagger tag puddletag picard musicbrainz mp3tag mac kid3 editar easytag linux bash shell unix formatting

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