和6年能登半島地震により亡くなられた方々のご冥福をお祈りするとともに、被害に遭われた皆さまに対し、心よりお見舞い申し上げます。一日も早く被災地の安全が確保され、復旧が進む事を心よりお祈り申し上げます。

bash ブレース展開

とっても便利なブレース展開のMemo

Bash Reference Manual

OS

$ cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)

bashのバージョン

$ bash --version
GNU bash, version 4.4.19(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

カンマで区切る。スペース区切りで展開する。

書式:{文字列1,文字列2, 文字列N}    { } ←brace

$ echo {a,b}
a b
$ echo {C,D,E,F,G,H,I,J}
C D E F G H I J
$ echo test-{x,y}
test-x test-y

連番ブレース展開(始めと終わりをドット2つでつなぐ)
書式:{始まり..終わり}
<始まり>から1ずつプラスして、スペースで区切り、順番に出力する。
<終わり>まで達したら、終了(^^)/

$ echo {1..10}
1 2 3 4 5 6 7 8 9 10
$ echo {5..12}
5 6 7 8 9 10 11 12
$  echo {c..x}
c d e f g h i j k l m n o p q r s t u v w x
$  echo {C..X}
C D E F G H I J K L M N O P Q R S T U V W X

▼1に3ずつ足す。18を超す前に出力停止。

$ echo {1..18..3}
1 4 7 10 13 16

▼file1.txt~file5.txtの空ファイルを作る。

$ touch file{1..5}.txt
$ ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

参考サイト

Brace Expansion

コメント