¿Cómo renderizar dos columnas conservando todos los espacios en blanco después de la primera columna con awk o alternativa?

¿Cómo renderizar dos columnas conservando todos los espacios en blanco después de la primera columna con awk o alternativa?

mi salida viene en cifras legibles por humanos con un espacio seguido de nombres de directorio:

Actualmente estoy usando...

awk '{ printf "%-20s %-40s\n", $1, $2 }'

aporte

1G foo
1.5M foo baz 
5K foo spaces in this directory

producción

1G    foo
1.5M  foo 
5K    foo 

deseado

1G    foo
1.5M  foo baz 
5K    foo spaces in this directory

¿Cómo dividir en dos columnas con delimitador de espacios en blanco preservando todos los espacios en blanco en la segunda columna usando awk o una alternativa?

Respuesta1

Prueba esto:

$ awk '{ printf "%-20s ", $1; $1=""; print $0 }' input 
1G                    foo
1.5M                  foo baz
5K                    foo spaces in this directory

Restablecer las columnas principales a una cadena vacía es el truco habitual para imprimir todos los campos/columnas restantes.

información relacionada