web-dev-qa-db-ja.com

bashでテキストを左揃えにする方法は?

テキストを指定すると、$txt、Bashで指定された幅に揃える方法はありますか。

例(幅= 10):

$txt=hello、印刷したい:

hello     |

$txt=1234567890、印刷したい:

1234567890|
28
Misha Moroshko

次のようにprintfコマンドを使用できます。

printf "%-10s |\n" "$txt"

%sは引数を文字列として解釈することを意味し、-10は幅10に左揃えするように指示します(負の数は左揃えを意味し、正の数は右揃えを意味します)。 printfは暗黙的に改行を追加しないため、改行を印刷するには\nが必要です。

man printfはこのコマンドについて簡単に説明していますが、full形式のドキュメントはC関数manにありますman 3 printfのページ。

44
drrlvn

左揃えに- flagを使用できます。

例:

[jaypal:~] printf "%10s\n" $txt
     hello
[jaypal:~] printf "%-10s\n" $txt
hello    
3
jaypal singh

bashにはprintfビルトインが含まれます

txt=1234567890
printf "%-10s\n" "$txt"
1
SiegeX