34

テキストが$txt与えられた場合、Bash で特定の幅に合わせて左揃えにするにはどうすればよいですか?

例 (幅 = 10):

もし$txt=hello、私は印刷したい:

hello     |

もし$txt=1234567890、私は印刷したい:

1234567890|
4

3 に答える 3

56

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

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

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

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

于 2012-01-24T21:05:50.843 に答える
5

-左揃えにはフラグを使用できます。

例:

[jaypal:~] printf "%10s\n" $txt
     hello
[jaypal:~] printf "%-10s\n" $txt
hello
于 2012-01-24T21:06:40.403 に答える
2

Bashにはprintf組み込みが含まれています:

txt=1234567890
printf "%-10s\n" "$txt"
于 2012-01-24T21:06:06.193 に答える