テキストを指定すると、$txt
、Bashで指定された幅に揃える方法はありますか。
例(幅= 10):
$txt=hello
、印刷したい:
hello |
$txt=1234567890
、印刷したい:
1234567890|
次のようにprintf
コマンドを使用できます。
printf "%-10s |\n" "$txt"
%s
は引数を文字列として解釈することを意味し、-10
は幅10に左揃えするように指示します(負の数は左揃えを意味し、正の数は右揃えを意味します)。 printf
は暗黙的に改行を追加しないため、改行を印刷するには\n
が必要です。
注man printf
はこのコマンドについて簡単に説明していますが、full形式のドキュメントはC関数manにありますman 3 printf
のページ。
左揃えに- flag
を使用できます。
[jaypal:~] printf "%10s\n" $txt
hello
[jaypal:~] printf "%-10s\n" $txt
hello
bash
にはprintf
ビルトインが含まれます
txt=1234567890
printf "%-10s\n" "$txt"