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