テキストが$txt
与えられた場合、Bash で特定の幅に合わせて左揃えにするにはどうすればよいですか?
例 (幅 = 10):
もし$txt=hello
、私は印刷したい:
hello |
もし$txt=1234567890
、私は印刷したい:
1234567890|
テキストが$txt
与えられた場合、Bash で特定の幅に合わせて左揃えにするにはどうすればよいですか?
例 (幅 = 10):
もし$txt=hello
、私は印刷したい:
hello |
もし$txt=1234567890
、私は印刷したい:
1234567890|
printf
次のようにコマンドを使用できます。
printf "%-10s |\n" "$txt"
%s
引数を文字列として解釈し、幅 10 に左揃えするように指示します (負の-10
数は左揃えを意味し、正の数は右揃えを意味します)。は改行を暗黙的に追加しない\n
ため、改行を出力する必要があります。printf
ではこのコマンドについてman printf
簡単に説明していますが、完全な形式のドキュメントは の C 関数のマニュアル ページにありman 3 printf
ます。
-
左揃えにはフラグを使用できます。
[jaypal:~] printf "%10s\n" $txt
hello
[jaypal:~] printf "%-10s\n" $txt
hello
Bashにはprintf
組み込みが含まれています:
txt=1234567890
printf "%-10s\n" "$txt"