大括號的分配律─ Brace Expansion
01 Dec 2022linux
zsh
-
分配律用法例如:創建 apple.txt after.txt as.txt 三個檔案
touch a{pple,fter,s}.txt
總之就是把共同的部份寫在大括號外面即可。
-
連續用法例如:創建 file1, file2, …, file100 等100個資料夾
mkdir file{1..100}
把連續的字母或數字的頭、尾寫在大括號內,用
..
隔開即可,原本需要100條命令現在只要1條就可以做到。也可以將數字改為英文字母,例如下面指令會 echo a ~ z 26 個字母
echo {a..z} # a b c d e f g h i j k l m n o p q r s t u v w x y z
也可以用降序的方式:
echo {10..1} # 10 9 8 7 6 5 4 3 2 1
-
當然也可以混合使用:
touch file_{1..5}_{old,new}
這樣會產生10個檔案,
file_1_old
、file_1_new
、file_2_old
… -
設置 step - {start..end..step}
echo {10..0..2} # 10 8 6 4 2 0
-
使用在 for loop 上
for i in {0..10} do echo "Number: $i" done # Number: 0 # Number: 1 # Number: 2 # Number: 3 # Number: 4 # Number: 5 # Number: 6 # Number: 7 # Number: 8 # Number: 9 # Number: 10
-
Nested
echo {a{1..3},{b..f}{4..0..2}} # a1 a2 a3 b4 b2 b0 c4 c2 c0 d4 d2 d0