printfで左寄せ
Zshではprintf
を使って文字列を表示できますが、
良くある書式の様に%-30s
みたいにすると
後から与える文字列を左寄せ、30文字の幅を持って表示できます。
与えた文字が30文字に足らない場合は残りは空白で。
$ printf "X%-30sX" "aaa"
Xaaa X
-
を付けなければ右寄せ
$ printf "X%-30sX" "aaa"
X aaaX
Bashでも同様のことが出来ます。
MacのデフォルトZshでは出来ない?
現在手元にあるMacでは
/bin/zsh
に入ってる物がversion 5.0.8です。
このZshを立ち上げると
$ /bin/zsh
$ printf "X%-30sX" "aaa"
X aaaX
な感じで右寄せになってしまいます。
-
を外しても同じ結果になります。
HomebrewでZsh 5.2が入れられますが、これを使うと、
$ /usr/local/bin/zsh
$ printf "X%-30sX" "aaa"
Xaaa X
ときちんと左寄せに。
ちなみにBashはデフォルトが3.2.57、Homebrewで入れられる物が 4.3.42ですが何方も右寄せはきちんと出来ます。
更に、他のLinux環境で古い4.2.6や4.3.11と言った Zshがあったのでそれで試してみたところ きちんと右寄せ出来ました。
一応~/.zshrcとか外してやっているつもりですが、 Macで5.0.8と5.2でこの様な違いがあるかな、、、という疑問。
何か勘違いしておかしなことをしてるのかもしれませんが、 もし誰か調べてみたり知ってることがあったら教えてもらえればうれしいな、と。 (調べても全くわからなかったので。。。)
Sponsored Links