Dalam dunia skrip Bash, ada berbagai operator yang dapat kita gunakan yang memberdayakan kita untuk memanipulasi, membandingkan, dan menguji data. Salah satu operator tersebut adalah operator `=~`. Sering diabaikan tetapi sangat kuat, operator ini memberi kita sarana untuk mencocokkan pola string menggunakan ekspresi reguler. Artikel ini mendalami penerapan praktis operator `=~` di Bash.
AdvertisementMemahami =~ Operator
Operator `=~` adalah fitur khusus Bash yang digunakan dalam ekspresi bersyarat. Penggunaan utamanya adalah membandingkan string dengan pola ekspresi reguler. Jika string cocok dengan pola, operator mengembalikan 0 (benar), dan jika tidak, mengembalikan 1 (salah).
Sintaks dari =~ Operator
Sintaksnya sangat mudah. Operator `=~` digunakan dalam [[ dan ]], dan string serta ekspresi reguler adalah operannya, seperti yang ditunjukkan di bawah ini:
[[ string =~ ekspresi_reguler ]]1[[string=~ ekspresi_regular]]
Jika string cocok dengan ekspresi reguler, status keluar dari operasi adalah 0; jika tidak, ini adalah 1.
Aplikasi Praktis dari =~ Operator
Sekarang mari selami beberapa contoh praktis untuk melihat bagaimana operator `=~` dapat diterapkan.
Contoh 1: Pencocokan Pola Sederhana
Mari kita mulai dengan contoh dasar. Kami memiliki string yang bertuliskan “Welcome to Bash scripting,” dan kami ingin melihat apakah string tersebut berisi kata “Bash.”
#!/bin/bash
str=”Selamat datang di skrip Bash”
if [[ $str =~ Bash ]]; Kemudian
echo “String berisi kata Bash.”
kalau tidak
echo “String tidak mengandung kata Bash.”
fi123456789#!/bin/bash str=”Welcome to Bash scripting” if[[$str=~Bash]];then echo”String berisi kata Bash.”else echo”String tidak mengandung kata Bash.” fi
Ketika kita menjalankan skrip ini, itu akan menampilkan “String berisi kata Bash.”
Contoh 2: Menggunakan Ekspresi Reguler
Salah satu keuntungan signifikan dari operator `=~` adalah memungkinkan pencocokan pola ekspresi reguler. Misalkan kita ingin memeriksa apakah sebuah string mengandung angka apapun. Inilah cara kami melakukannya:
#!/bin/bash
str=”Pesan 5 pizza”
if [[ $str =~ [0-9]+ ]]; Kemudian
echo “String berisi angka.”
kalau tidak
echo “String tidak mengandung angka.”
fi123456789#!/bin/bash str=”Pesan 5 pizza” if[[$str=~[0-9]+]];then echo”String berisi digit.”else echo”String tidak berisi digit .”fi
Ekspresi `[[ $str =~ [0-9]+ ]]` akan memeriksa satu atau lebih kemunculan digit apa pun (0-9) dalam string. Skrip akan mencetak “String berisi angka.”
Contoh 3: Mengekstrak Kecocokan
Operator `=~` juga dapat digunakan untuk mengekstrak kecocokan. Saat kecocokan ditemukan, variabel array BASH_REMATCH diisi dengan bagian dari string yang cocok dan setiap grup yang diambil cocok. /bin/bash
tanggal=”23-05-2023″
regex=”([0-9]{2})-([0-9]{2})-([0-9]{4})”
if [[ $tanggal =~ $regex ]]; Kemudian
hari=${BASH_REMATCH[1]}
bulan=${BASH_REMATCH[2]}
tahun=${BASH_REMATCH[3]}
echo “Hari: $hari, Bulan: $bulan, Tahun: $tahun”
fi1234567891011#!/bin/bash date=”23-05-2023″regex=”([0-9]{2})-([0-9]{2})-([0-9]{4} )” if[[$date=~$regex]];then hari=${BASH_REMATCH[1]} bulan=${BASH_REMATCH[2]} tahun=${BASH_REMATCH[3]} echo”Hari: $hari, Bulan : $bulan, Tahun: $tahun”fi
Dalam skrip ini, ekspresi reguler ([0-9]{2})-([0-9]{2})-([0-9]{4}) akan cocok format tanggal dd-mm-yyyy, dan larik BASH_REMATCH akan menampung grup yang cocok. Skrip akan mencetak “Hari: 23, Bulan: 05, Tahun: 2023”.
Kesimpulan
Operator `=~` adalah alat yang sangat serbaguna untuk skrip Bash. Dengan memahami dan memanfaatkan kekuatan operator ini, Anda dapat menggabungkan pencocokan pola string kompleks dan logika ekspresi reguler ke dalam skrip Anda. Ingatlah untuk menggunakannya dalam tanda kurung ganda `[[“]]` dan selalu uji skrip Anda untuk memastikan bahwa ekspresi reguler Anda berfungsi seperti yang diharapkan. Selamat membuat skrip!
Referensi tecadmin.com