Quero usar printf no bash para formatar verbos alemães da seguinte maneira:
INFINITIV PRATERITUM PERFEKT 3.PERS. SING
heißen hieß hat geheißen er heißt
kaufen kaufte hat gekauft er kauft
Eu uso um comando printf simples no meu script bash:
printf "%-15s %-15s %-15s %-15s %-15s\n" "INFINITIV" "PRATERITUM" "PERFEKT" "3.PERS. SING"
printf "%-15s %-15s %-15s %-15s %-15s\n" "heißen" "hieß" "hat geheißen" "er heißt"
printf "%-15s %-15s %-15s %-15s %-15s\n" "kaufen" "kaufte" "hat gekauft" "er kauft"
Mas parece que o Eszett é visto como dois caracteres. Portanto, na tela, após cada ß, o texto muda uma posição para a esquerda. A saída é:
pwp@linuxcomputers:~/Scripts/Test$ Deutsche-Verben-Scharf-S
INFINITIV PRATERITUM PERFEKT 3.PERS. SING
heißen hieß hat geheißen er heißt
kaufen kaufte hat gekauft er kauft
Como posso evitar essa mudança e fazer com que a formatação printf faça o que foi planejado?
Com uma função para preencher suas strings no final:
Saída: