Формат ввода / вывода с printf в bash-shell

Я пытаюсь вывести результаты моего сценария оболочки с помощью printf. Чтобы результаты были выровнены в столбце, я использую вкладку как:

printf "%s\t %s\t %s\t %s\t %s\t %s\t %s\n" $i $est $var_m $jk $mst $var_M $Tes >>tmp 

Но проблема в том, что в некоторых случаях результаты немного длинны, как результат, например,

  • Длинногенерирующий запрос Bash обертывает неправильно, когда я начинаю вводить текст
  • Что именно происходит, если входной и выходной файлы совпадают?
  • Выход команды сохранения в переменной, если команда включает в себя каналы
  • Как удалить файл с именем файла
  • Сменная строка, содержащая шаблон со следующей строкой
  • Использовать звездочку в переменных
  •  var_M=`echo "scale=8;(-1/$jk + (e(2*$jk)+1)/(e(2*$jk)-1))"|bc -l ` 

    Итак, мне будет лучше, если я смогу отформатировать печать в колонке, что-то вроде:

     printf "%s *goto column 20* %s *go to column 30* " $i $est >>tmp 

    Это возможно?

    Я проверил этот поток, а также страницы руководства, но не смог его найти. Это возможно?

    NB: У меня нет особых причин придерживаться printf. так что любая другая подходящая команда, которая может сделать вещь (легко), также приветствуется.

    EDIT: printf "%-2s %-8s\n" $i $est >>tmp : printf "%-2s %-8s\n" $i $est >>tmp который явно не работает:

     4.0 0.17169E-02 5. 0.17156E-02 10. 0.17129E-02 

    (2-я строка / 2-й столбец не выровнены, как в случае вывода в формате списка)

    Linux и Unix - лучшая ОС в мире.