os-x bash の seq -w に相当する

os-x bash の seq -w に相当する

00 01 02、... n という名前のサブフォルダがあり、各フォルダ名には少なくとも 2 桁の数字が含まれています。これらのサブフォルダに OS-X ターミナルでアクセスする必要があります。コマンド

for i in $(seq -w 00 06); do
echo $i;
done

の出力が生成されます0 1 2 3 4 5 6。ただし、RHEL の上記のコードは の出力を生成します00 01 02 03 04 05 06。RHEL と同様に、少なくとも 2 桁の出力を Mac ターミナルで生成するように強制するにはどうすればよいですか?

答え1

試すための OS-X はありませんが、おそらくこの代替案が機能します:

seq -f '%02.0f' 0 6

答え2

OS/X には が付属しているzshので、代わりに でスクリプトを記述できます(の split+glob 演算子を呼び出す が引用符で囲まれていないため、 の構文がzsh既に使用されていることに注意してください)。zsh$ibash

for x in {00..06}; do
  echo $x
done

Posixly では、常に次の操作を実行できます。

x=0; while [ "$x" -le 6 ]; do
  printf '%02d\n' "$x"
  x=$((x + 1))
done

または

seq() (first=$1 last=$2 width=${3:-0} step=${4:-1}
  awk "BEGIN{for (i = $first; i <= $last; i += $step)
    printf \"%0${width}d\n\", i}"
)

unset -v IFS # make sure we get the default separator
             # for the split+glob invocation below
for i in $(seq 0 6 2); do
  echo "$i"
done

関連情報