Bash #37 Regular Expression for Pattern Search

Dalam Bash scripting, ekspresi reguler (regex) digunakan untuk mencari dan memanipulasi pola teks dalam file dan output perintah. Artikel ini membahas sintaks dasar regex, penggunaannya dalam grep, sed, dan awk, serta contoh penerapan dalam scripting otomatisasi.

Share:

Table of Contents

🖥️ Pengantar

Ekspresi reguler (regular expressions atau regex) adalah alat yang sangat berguna untuk pencocokan pola dalam teks. Dengan regex, kita dapat mencari, mengganti, atau memfilter teks dalam file dan output perintah di Bash.

Artikel ini akan membahas:

  1. Mengenal Ekspresi Reguler dalam Bash – Konsep dasar dan kegunaan regex.

  2. Sintaks Dasar Regex dalam Bash – Cara menulis pola pencarian regex.

  3. Menggunakan Regex dengan grep, sed, dan awk – Implementasi dalam berbagai alat Bash.

  4. Contoh Implementasi Regex dalam Skrip Bash – Studi kasus praktis.

  5. Praktik Terbaik dalam Menggunakan Regex – Teknik lanjutan untuk scripting yang lebih efisien.

Mari kita bahas satu per satu! 🚀


📌 1. Mengenal Ekspresi Reguler dalam Bash

Ekspresi reguler memungkinkan kita mencocokkan pola teks berdasarkan aturan tertentu.

🔹 Keuntungan Menggunakan Regex:

  • Mencari dan mengekstrak pola tertentu dalam teks.

  • Menghapus atau memodifikasi bagian teks secara otomatis.

  • Menghemat waktu dalam pemrosesan data berbasis teks.


📌 2. Sintaks Dasar Regex dalam Bash

Berikut adalah beberapa elemen dasar regex yang sering digunakan:

Simbol

Deskripsi

.

Mencocokkan satu karakter apa pun

*

Mencocokkan nol atau lebih karakter sebelumnya

+

Mencocokkan satu atau lebih karakter sebelumnya

?

Mencocokkan nol atau satu karakter sebelumnya

^

Mencocokkan awal baris

$

Mencocokkan akhir baris

[abc]

Mencocokkan salah satu karakter dalam tanda kurung

[^abc]

Mencocokkan karakter yang tidak ada dalam tanda kurung

\d

Mencocokkan digit angka (hanya dalam grep -P)

\s

Mencocokkan spasi atau tab

\w

Mencocokkan huruf, angka, atau garis bawah


📌 3. Menggunakan Regex dengan grep, sed, dan awk

Ekspresi reguler sering digunakan dalam perintah seperti grep, sed, dan awk untuk memfilter dan memproses teks.

🔹 Mencari Pola dengan grep

grep “error” log.txt


📌 Catatan:

  • Mencari kata “error” dalam file log.txt.

🔹 Menggunakan Regex dengan grep -E (Extended Regex)

grep -E “[0-9]{3}-[0-9]{3}-[0-9]{4}” contacts.txt


📌 Catatan:

  • Mencari pola nomor telepon dalam format XXX-XXX-XXXX.

🔹 Menggunakan Regex dengan sed untuk Mengganti Teks

sed ‘s/[0-9]/#/g’ data.txt


📌 Catatan:

  • Mengganti semua angka dalam file data.txt dengan tanda #.

🔹 Menggunakan Regex dengan awk untuk Memfilter Teks

awk ‘/^ERROR/ {print $0}’ log.txt


📌 Catatan:

  • Menampilkan semua baris dalam log.txt yang diawali dengan “ERROR”.


📌 4. Contoh Implementasi Regex dalam Skrip Bash

Berikut adalah beberapa studi kasus penggunaan regex dalam skrip Bash.

🔹 Contoh: Memvalidasi Alamat Email

read -p “Masukkan email: “ email
if [[ $email =~ ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ ]]; then
    echo “Email valid”
else
    echo “Email tidak valid”
fi


📌 Catatan:

  • =~ digunakan untuk mencocokkan regex dalam Bash.

🔹 Contoh: Menemukan Baris yang Mengandung Angka

grep -E “[0-9]+” file.txt


📌 Catatan:

  • Menampilkan semua baris dalam file.txt yang mengandung angka.

🔹 Contoh: Menghapus Karakter Non-Alfabet dari File

sed ‘s/[^a-zA-Z ]//g’ file.txt


📌 Catatan:

  • Menghapus semua karakter selain huruf dan spasi.


📌 5. Praktik Terbaik dalam Menggunakan Regex

Gunakan Regex yang Efisien untuk Mencegah Overhead:

grep “^[A-Z]” file.txt


📌 Catatan:

  • Mencari baris yang diawali huruf kapital dengan cara yang optimal.

Gunakan Regex dalam Skrip untuk Automasi Validasi Data:

if [[ $input =~ ^[0-9]+$ ]]; then
    echo “Hanya angka yang diterima”
else
    echo “Input tidak valid”
fi

Gunakan grep -P untuk Mendukung Perl-Compatible Regex:

grep -P “\d{4}-\d{2}-\d{2}” dates.txt

📌 Catatan:

  • Mendukung ekspresi reguler yang lebih kompleks seperti \d untuk digit.


📌 Kesimpulan

Ekspresi reguler dalam Bash memungkinkan kita mencari, mengganti, dan memfilter teks dengan pola tertentu. Dalam artikel ini, kita telah membahas:

✅ Sintaks dasar regex dan pola pencarian. ✅ Implementasi regex dalam grep, sed, dan awk. ✅ Contoh penerapan dalam validasi email, analisis teks, dan pemrosesan file. ✅ Praktik terbaik dalam penggunaan regex dalam skrip Bash.

Artikel Selanjutnya: 🔄 Dry Run Technique – Menjalankan skrip dalam mode uji coba tanpa benar-benar mengeksekusi perintah yang dapat mengubah sistem.


📚 Daftar Pustaka

Leave a Reply

Your email address will not be published. Required fields are marked *