Cara Menggunakan Brace Expansion pada Bash

Brace Expansion ({..}) merupakan salah satu fitur pada Bash yang jarang diketahui oleh kebanyakan orang, kalian dapat menggunakan Brace Expansion untuk menghasilkan string yang terdiri atas deret angka dan string.

Misalnya, kalian dapat menghasilkan deret angka dari 1 hingga 10 dengan perintah brace expansion berikut:

$ echo {1..10}

Hasilnya:

1 2 3 4 5 6 7 8 9 10

Menghasilkan Deret Angka

Kalian dapat menghasilkan deret angka dari yang terbesar ke terkecil.

$ echo {5..-5}
5 4 3 2 1 0 -1 -2 -3 -4 -5

Untuk menambahkan bilangan 0 pada setiap deret angka bisa menggunakan contoh brace expansion berikut:

$ echo {01..12}
01 02 03 04 05 06 07 08 09 10 11 12

Kalian juga dapat menambahkan inteval pada brace expansion seperti pada contoh berikut:

$ echo {1..10..2}
1 3 5 7 9

Menghasilkan Deret Huruf

Selain bisa menghasil deret angka, brace expansion dapat menghasilkan deret huruf.

Misalnya, penggunaan brace expansion untuk menghasilkan huruf dari a hingga g.

$ echo {a..g}
a b c d e f g

Brace expansion untuk menghasilkan deret huruf kapital:

$ echo {A..G}
A B C D E F G

Sama seperti deret angka, kalian juga dapat menggunakan interval dan membuat deret huruf terbalik.

$ echo {A..N..2}
A C E G I K M
$ echo {G..A}
G F E D C B A

Membuat File Cadangan

Salah satu kegunaan brace expansion adalah untuk membuat file cadangan yang biasanya sangat sering aku lakukan sebelum mengedit file konfigurasi tertentu.

Misalnya, perintah berikut ini untuk membuat file cadangan .bashrc.

$ cp ~/.bashrc{,.bak}

Perintah di atas sama dengan perintah di bawah ini:

$ cp ~/.bashrc ~/.bashrc.bak

Membuat Banyak File Sekaligus

Contoh penggunaan brace expansion berikut ini untuk membuat file todo-01.txt, todo-02.txt, dan seterusnya.

$ touch todo-{01..05}.txt

Perintah di atas sama dengan perintah berikut ini:

$ touch todo-01.txt todo-02.txt todo-03.txt todo-04.txt todo-05.txt

Contoh penggunaan brace expansion yang untuk membuat beberapa file sekaligus.

$ touch {a,b,c,x,y,z}.txt

Perintah di atas sama dengan perintah berikut ini:

$ touch a.txt b.txt c.txt x.txt y.txt z.txt

Multi Brace Expansion

Kalian juga dapat membuat permutasi dari beberapa huruf ataupun angka dengan menggunakan beberapa brace expansion sekaligus

Misalnya, penggunaan brace expansion berikut untuk membuat file a1.txt, a2.txt, b1.txt, b2.txt.

$ touch {a,b}{1,2}.txt
$ ls
a1.txt  a2.txt  b1.txt  b2.txt