我正在尝试使用 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