bash-shell 中带有 printf 的 i/o 格式

bash-shell 中带有 printf 的 i/o 格式

我正在尝试使用 printf 输出 shell 脚本的结果。为了使结果在列中对齐,我使用制表符作为:

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

但问题是,在某些情况下,结果有点长,例如输出,

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

这可能吗?

我检查过这个线程还有手册页,但未能找到它。这可能吗?

注意:我没有任何特殊理由坚持使用 printf。因此,任何其他可以(轻松)完成该操作的合适命令也是受欢迎的。

编辑:尝试过:printf "%-2s %-8s\n" $i $est >>tmp 这显然不起作用:

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

(第二行/第二列不对齐,就像列表格式输出的情况一样)

答案1

尝试这个:

printf "%-20s %-30s" $i $est >>tmp

相关内容