LoginSignup
45
43

More than 3 years have passed since last update.

シェルスクリプトで桁数を揃えた連番を作成

Last updated at Posted at 2015-12-25

フォルダを作成して、その中に何か入れるとかする場合、普通に1〜20とかを指定すると
1,10,2,20,3,4〜
というように並んじゃったり、見た目があまりよろしくない場合があります。

seqを使ったfor文だとそうなっちゃいますよね。

for FIGURE in `seq 1 10`
do
    echo "${FIGURE}"
done

そこで、1桁でも、01〜09と、0を付けて桁を揃えるようにします。
方法は、seqに-fオプションを付けて、指定をちょっと変えるだけ

seq -f  %[桁数]g [最初の数] [最後の数]

例えば、2桁で1から10までの数字を生成する時は、こう。

seq -f %02g 1 10

こんな感じで書きます。

#!/bin/bash

# 普通seqを使ったfor文
echo "seq 1 10を使った普通のfor文"
for FIGURE in `seq 1 10`
do
    echo "${FIGURE}"
done


# seq -fで2桁数字を作って、forで回していく
echo "seq -fで2桁数字を作って、forで回していく"
for _3FIGURE in `seq -f %02g 1 10`

do
    echo "${_3FIGURE}"
done

これを実行すると、こうなる

seq 1 10を使った普通のfor文
1
2
3
4
5
6
7
8
9
10
seq -fで2桁数字を作って、forで回していく
01
02
03
04
05
06
07
08
09
10

このシーズン、来年に向けて1月から12月まで、2桁でそろったフォルダとかを作る時に便利。

45
43
2

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
45
43