Se eu entendi o que você quer é uma função para deixar certo número de espaços depois de uma string especificada. Aqui está:
fix_space() {
string="$1"
len="$2"
perl -e "my \$str = ''printf "$string" | sed "s/'/\'/g"''; print \$str.' ' x ($len - length(\$str))"
}
echo "''fix_space "ololfdsaf" 20''"
echo "''fix_space "ololff" 20''"
Ele simplesmente torna perl
fazendo todo o trabalho sujo. String vai como o primeiro argumento e o comprimento total como o segundo. Tenho certeza de que isso ajudará você a alinhar sua saída.
EDITAR:
Você pode fazer isso sem perl
usando apenas o shell. Então você tem que digitar:
printf "'$string'printf ' '%.0s {1..$((len - ${#string}))}''\n"