Unix printf no formatea las cadenas como se esperaba; en su lugar, imprime la cadena formateada

Unix printf no formatea las cadenas como se esperaba; en su lugar, imprime la cadena formateada

Quiero escribir algunas variables ENV en un archivo .txt con el printfcomando (e ignorar las líneas que están vacías porque la variable env no está configurada):

printf '%-79s' "${foo1}${bar1}" | grep -v '^\s\{79\}' >> foobar.txt
printf '%-79s' "${foo2}${bar2}" | grep -v '^\s\{79\}' >> foobar.txt
...

En mi entorno local WSL y Docker (centos 7) funciona como se esperaba. Pero en los servidores donde debería ejecutarse el script, se imprime solo 79sen el archivo foobar.txt:

cat foobar.txt
79s
79s

¿Alguien tiene una idea de por qué el printfcomando no funciona como se esperaba?

No dudes en sugerirme otras soluciones. Pero también estoy muy interesado en saber por qué el comando no funciona como se esperaba en mis servidores remotos.

información relacionada