連番文字列の作り方

IT
スポンサーリンク

連番文字列の作り方(Windowsの場合)

連番を作りたい時はどうしてますか?
エクセルを起動して先頭から1,2と入力して下までびよーんと伸ばして番号作るのもいいですが、もっとスマートな方法があります。
Windowsの場合は、付属のPowerShellを使います。

1から100までの連番を作成

試しに1から100までの連番をスマートに作成してみます。

画面上に表示

# 1から100までの文字列を生成する
1..100
1
2
3
4
5
6
7
8
9
10
11
(省略)
99
100

PowerShellを使うとこれだけで連番文字列が作れます。
画面に表示したところであまり意味がありませんね。
画面に出すのは、あくまで仕上がりを確認するだけです。
これをファイルに書き出してこそ意味があります。

ファイルに出力

ファイルに出力するには、リダイレクトを使います。
先程のコマンドの後に > ファイル名 を付けると結果を画面ではなく指定したファイルに出力することが出来ます。

# 1から100までの文字列を生成して、output.txtファイルに書き出す
1..100 > output.txt

桁あわせ

数字としてならこれで良いのですが、文字列としてみると、桁数を合わせたいこともあると思います。その時は、toStringで前を0で埋めます。

# 1から100までの文字列を生成する。前0埋めする
1..100 | foreach { write-output $_.toString("000") }
001
002
003
004
005
006
007
008
009
010
011
(省略)
099
100

連番のフォルダを作る

応用して、連番のフォルダを作ってみます。連番フォルダを作りたいフォルダに移動し、次のコマンドで一気に作成することが出来ます。

# 001, 002, 003 ... 100 のフォルダを作成する
1..100 | foreach { mkdir $_.toString("000") }

連番の前後に文字列を結合する

# 接頭辞と接尾辞を追加する
1..100 | foreach { write-host ("Prefix_" + $_.toString("000") + "_Suffix")}
Prefix_001_Suffix
Prefix_002_Suffix
Prefix_003_Suffix
Prefix_004_Suffix
...
Prefix_100_Suffix

これで連番をスマートに作れると思います。
いろいろと応用できるので使える技だと思います。

スポンサーリンク

連番文字列の作り方(Linuxの場合)

ちなみにLinuxの場合は、seqコマンドで同じようなことが出来ます。

# 1から100までの文字列を生成する
seq 1 100

# 1から100までの文字列を生成する。前0埋めする
seq -w 1 100
# abc_001, abc_002, abc_003 ... abc_100 のフォルダを作成する
for i in `seq -w 1 100`; do
mkdir abc_$i
done

すみません、個人的にほとんど触らないPowerShellの備忘録なので、Linuxの方は雑です。(大体、sedをパイプで連結してこねくり回せば大体なんとかなるので…)

コメント

タイトルとURLをコピーしました