Единственный способ заставить его работать идеально в терминале (консоли) - это буквально заполнить строку циклом. Приятной особенностью является то, что вы можете выбрать, какой символ дополнить его, например, «Текст .......... 234». Без ручного заполнения большинство строк выравнивалось с помощью printf, но некоторые оставались немного не выровненными.
# This gets available cols in terminal window:
w_cols=`tput cols`
col2=15
let "col1=($w_cols - $col2)"
small="Hey just this?"
bigone="Calm down, this text will be printed nicelly"
padchar='.'
let "diff=${#bigone} - ${#small}"
for ((i=0; i<$diff; i++));
do
small="${small}$pad_char"
done
# The '-' in '%-80s' below makes the first column left aligned.
# Default is right all columns:
printf "%-${col1}s\t%${col2}d\n" "$small" 123456
printf "%-${col1}s\t%${col2}d\n" "$bigone" 123
В результате получается что-то вроде
Hey just this?..................................... 123456
Calm down, this text will be printed nicelly ...... 123