Bashで文字列変数をソートしようとしています。これは予想される動作です。
if str1="123" , then str2=" 123"
if str1="1234" , then str2=" 1234"
if str1="12345", then str2=" 12345"
printfを使用して印刷する方法を見つけましたが、印刷せずに変数内で行う必要があります。
ベストアンサー1
変数に単一バイト、単一幅文字のみが含まれているとします。
printf -v str2 %8s "$str1"
マルチバイト(まだ単一の幅)文字が含まれている場合は、次のことができます。
printf -v str2 %8s%s '' "$str1"
str2=${str2: -8}
(しかし注意すべき点はカット値が8文字より大きい)。
ここに組み込まれbash
たコマンドは結果を変数に保存することをprintf
サポートしますが、そうでない場合でもコマンド置換を使用できます。-v
printf
str2=$(printf %8s "$str1")