コンマ区切りの文字列
ブレース展開にコンマ区切りの文字列を指定するとコンマで分割された文字に展開されます。
echo {1,2,3}
echo {a,b,c}
echo {111,222,333}
echo {abc,bcd,cdf}
ブレース展開の前と後に指定した文字列はそれぞれ展開された文字列に結合されます。
# 前置部分(test-)と後置部分(.txt)を指定
# それぞれ展開された文字列の前後に結合される
echo test-{1,2,3}.txt
echo test-{a,b,c}.txt
複数のブレース展開を組み合わせることができます。
# ブレース展開を組み合わせ
echo {1,2}{a,b,c}
シーケンス式
ブレース展開にシーケンス式を指定すると連続する値に展開されます。
echo {1..10}
echo {10..1}
echo {a..z}
echo {z..a}
シーケンス式では「開始..終了」の後に「..増分」を指定することができ、増分で指定した間隔飛びの連続した値に展開されます。
# シーケンス式は増分を指定できる
# 以下は 1 ~ 31 までを 増分 2 で展開する
echo {1..31..2}
# 以下は 31 ~ 1 までを 増分 2 で展開する
echo {31..1..2}
# 以下は A ~ Z までを 増分 2 で展開する
echo {A..Z..2}
シーケンス式では開始または終了のどちらかに 0 で始まる数字を指定した場合、前が 0 で埋められた数字に展開されます。
# 開始または終了のどちらかが 0 で始まる数字の場合
echo {1..09}
echo {01..9}
echo {01..09}
echo {01..10}
echo {000..10}
echo {000..100..10}
ブレース展開の使用例
実際に使えそうなブレース展開を使用したサンプルを考えてみました。
# 00.txt ~ 03.txt を作成
touch {01..03}.txt
ls
echo 'test' > test.txt
# test.txt を test.txt.bk にコピー
cp test.txt{,.bk}
ls