Bash-Shellでprintfを使用したI / Oフォーマット

Bash-Shellでprintfを使用したI / Oフォーマット

シェルスクリプトの結果を出力するために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

しかし、問題は、場合によっては結果が少し長いということです。たとえば、出力は

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

(2行目/2列目は、リスト形式の出力と同様に並べ替えられません。)

答え1

この試み:

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

関連情報