Wenn ich verstanden habe, was Sie wollen, ist eine Funktion, die nach einer angegebenen Zeichenfolge eine bestimmte Anzahl von Leerzeichen hinterlässt. Hier ist es:
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`'"
Es macht einfach die perl
ganze schmutzige Arbeit. String steht als erstes Argument und die volle Länge als zweites. Ich bin mir sicher, dass dies Ihnen helfen wird, Ihre Ausgabe auszurichten.
BEARBEITEN:
Sie können dies auch ohne perl
Shell tun . Dann müssen Sie Folgendes eingeben:
printf "'$string`printf ' '%.0s ))}`'\n"