LoginSignup
0
0

More than 5 years have passed since last update.

zsh で N 個のスペースからなる文字列を生成したい

Last updated at Posted at 2018-10-29

例えば Ruby では以下のようにすればできる。

n = 8
spaces = " " * n
p spaces # => "        " (8個のスペースからなる文字列)

zsh の場合は printf を使えば作れる。

$ n=8
$ spaces=$(printf "%${n}s" "")
$ typeset -p spaces
typeset spaces='        '

けど、printf を使わなくても Parameter Expansion Flags を利用するともっと簡単に書ける。

$ n=8
$ spaces=${(l:$n:):-}
$ typeset -p spaces
typeset spaces='        '

${:-} で空文字を作り、指定文字数分右詰めにしてくれる l:N: フラグをつけている。
l:N: は標準で半角スペースで埋めてくれるが、padding に使う文字は指定できて、例えば l:N::0: というようにすれば zero padding になる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0