por pendrive gparted formatear desde consola linux terminal awk

linux - pendrive - Cómo formatear la salida de la consola en columnas



formatear usb linux ubuntu (5)

Tengo el siguiente archivo de texto:

[master]$ cat output.txt CHAR.L 96.88 -6.75 (-6.49%) MXP.L 12.62 -1.00 (-7.41%) NEW.L 7.88 -0.75 (-8.57%) AGQ.L 17.75 -0.62 (-3.40%) RMP.L 13.12 -0.38 (-2.75%) RRR.L 3.35 -0.20 (-5.71%) RRL.L 7.95 -0.15 (-1.85%) SOU.L 1.73 -0.10 (-5.22%) YELL.L 5.47 -0.04 (-0.73%) AMC.L 9.75 -0.01 (-0.05%) PLU:USOP 95.40 0.00 (+0%) BP-.L 452.10 0.95 (+0.21%) SXX.L 29.00 1.50 (+5.41%) LLOY.L 26.78 1.64 (+6.52%) DES.L 23.62 2.25 (+10.34%) GKP.L 171.62 4.50 (+2.69%) XEL.L 83.75 5.00 (+6.33%) BARC.L 190.57 9.80 (+5.43%) RKH.L 251.62 12.00 (+5.02%) UKX.L 5529.21 45.44 (+0.83%)

Me gustaría arreglar la alineación de las columnas. Obviamente, puedo importar a una hoja de cálculo o algo así, pero me gustaría permanecer dentro de la terminal.

EDITAR: Usando expandir puedo lograr el resultado deseado en Ubuntu, pero ¿es esta la mejor manera?

[master]$ cat output.txt | expand -t24 CHAR.L 96.88 -6.75 (-6.49%) AMC.L 9.75 -0.01 (-0.05%) PLU:USOP 95.40 0.00 (+0%)


Esto imprime tu archivo en tres columnas usando awk, ya que de eso preguntaste:

cat output.txt | / awk -v cols=3 ''{printf("%-44s",$0)} NR%cols==0 {print ""} END {print ""}''

EDITAR:

Si su salida consistentemente utiliza TAB individuales para separar columnas, entonces expandir le funcionará, como ha visto. Bu "awk" es más adecuado para este tipo de tarea, ya que le permitirá controlar el formateo de forma más completa. Awk (por defecto) considera que todos los espacios en blanco son separadores de campo (por lo tanto, "" y "^ I" y "^ I" son todos separadores de campo único).

Después de la actualización de la pregunta, parece que esto es lo que estás buscando:

awk ''{ printf("%-10s%8s%8s %s/n", $1, $2, $3, $4); }'' < output.txt

Si desea restringir el formato un poco más, puede usar:

awk ''{ printf("%-10s%8.2f%8.2f %s/n", $1, $2, $3, $4); }'' < output.txt

Puede hacerse elegante y controlar el formato de la última columna si así lo desea, pero sospecho que ese es el tema de otra pregunta.


Esto podría funcionar para usted:

pr -tw132 -3 output.txt CHAR.L 96.88 -6.75 (-6.49%) SOU.L 1.73 -0.10 (-5.22%) DES.L 23.62 2.25 (+10.34%) MXP.L 12.62 -1.00 (-7.41%) YELL.L 5.47 -0.04 (-0.73%) GKP.L 171.62 4.50 (+2.69%) NEW.L 7.88 -0.75 (-8.57%) AMC.L 9.75 -0.01 (-0.05%) XEL.L 83.75 5.00 (+6.33%) AGQ.L 17.75 -0.62 (-3.40%) PLU:USOP 95.40 0.00 (+0%) BARC.L 190.57 9.80 (+5.43%) RMP.L 13.12 -0.38 (-2.75%) BP-.L 452.10 0.95 (+0.21%) RKH.L 251.62 12.00 (+5.02%) RRR.L 3.35 -0.20 (-5.71%) SXX.L 29.00 1.50 (+5.41%) UKX.L 5529.21 45.44 (+0.83%) RRL.L 7.95 -0.15 (-1.85%) LLOY.L 26.78 1.64 (+6.52%)


Lo encontré:

cat output.txt | expand --tabs=14


la columna de solución como es lo que quieres.

me@home$ column -t output.txt CHAR.L 96.88 -6.75 (-6.49%) MXP.L 12.62 -1.00 (-7.41%) NEW.L 7.88 -0.75 (-8.57%) AGQ.L 17.75 -0.62 (-3.40%) RMP.L 13.12 -0.38 (-2.75%) RRR.L 3.35 -0.20 (-5.71%) RRL.L 7.95 -0.15 (-1.85%) SOU.L 1.73 -0.10 (-5.22%) YELL.L 5.47 -0.04 (-0.73%) AMC.L 9.75 -0.01 (-0.05%) PLU:USOP 95.40 0.00 (+0%) BP-.L 452.10 0.95 (+0.21%) SXX.L 29.00 1.50 (+5.41%) LLOY.L 26.78 1.64 (+6.52%) DES.L 23.62 2.25 (+10.34%) GKP.L 171.62 4.50 (+2.69%) XEL.L 83.75 5.00 (+6.33%) BARC.L 190.57 9.80 (+5.43%) RKH.L 251.62 12.00 (+5.02%) UKX.L 5529.21 45.44 (+0.83%)