Tutorial Ekspresi Reguler Linux: Contoh Grep Regex

โšก Ringkasan Cerdas

Ekspresi reguler Linux adalah rangkaian karakter khusus yang mencari data dan mencocokkan pola kompleks di berbagai alat seperti grep, sed, dan vi, menggunakan bentuk dasar, interval, diperluas, dan perluasan kurung kurawal untuk menyaring teks secara tepat.

  • ๐Ÿ”Ž Apa itu: Ekspresi reguler, yang disingkat menjadi regexp atau regex, menjelaskan pola teks untuk pencarian dan pencocokan.
  • ๐Ÿงฉ Set dasar: Simbol-simbol seperti . ^ $ * dan \ berfungsi sebagai jangkar, pengulangan, dan karakter escape dalam sebuah pola.
  • ๐Ÿ”ข Selang: Tanda kurung kurawal seperti {n} dan {n,m} mengontrol berapa kali karakter sebelumnya diulang.
  • โž• Diperpanjang: Dengan grep -E, \+ dan \? mencocokkan satu atau lebih dan nol atau satu kemunculan suatu karakter.
  • ๐Ÿงต Ekspansi penyangga: Kurung kurawal menghasilkan beberapa string dari sebuah urutan atau daftar yang dipisahkan koma.
  • ๏ธ Digunakan di mana: Alat-alat seperti grep, sed, tr, dan vi mengandalkan ekspresi reguler untuk menyaring teks.
  • ๐Ÿค– Bantuan AI: Asisten AI dan GitHub Copilot dapat menghasilkan, menjelaskan, dan men-debug pola regex dengan cepat.

Ekspresi reguler Linux dengan grep โ€” contoh regex dasar, interval, dan lanjutan.

Ekspresi reguler adalah salah satu fitur paling ampuh dari Linux Alat teks, memungkinkan Anda mencocokkan, memfilter, dan mengubah data dengan pola yang ringkas. Halaman ini menjelaskan bentuk dasar, interval, dan bentuk yang diperluas, ditambah perluasan tanda kurung kurawal, dengan contoh grep yang telah dikerjakan.

Apa itu Ekspresi Reguler Linux?

Ekspresi reguler Linux adalah karakter khusus yang membantu mencari data dan mencocokkan pola kompleks. Ekspresi reguler disingkat sebagai 'regexp' atau 'regex'. Ekspresi ini digunakan dalam banyak program Linux seperti... grep, bash, rename, sed, dan banyak lagi.

Jenis ekspresi reguler

Agar mudah dipahami, mari kita pelajari berbagai jenis ekspresi reguler satu per satu. Halaman ini mencakup ekspresi reguler dasar, interval, dan yang diperluas, dan diakhiri dengan perluasan tanda kurung kurawal.

Ekspresi Reguler Dasar

Beberapa perintah yang umum digunakan yang bekerja dengan ekspresi reguler adalah tr, sed, vi, dan grep. Tabel di bawah ini mencantumkan beberapa ekspresi reguler dasar.

ะกะธะผะฒะพะป Deskripsi
. Menggantikan karakter apa pun
^ Mencocokkan awal sebuah string
$ Mencocokkan bagian akhir dari sebuah string
* Cocok dengan karakter sebelumnya sebanyak nol kali atau lebih.
\ Mewakili karakter khusus
() Mengelompokkan ekspresi reguler
? Cocok persis dengan satu karakter

Mari kita lihat sebuah contoh. Pertama, jalankan perintah `cat sample` untuk menampilkan isi dari sebuah file yang sudah ada, seperti yang ditunjukkan di bawah ini.

Perintah `cat sample` menampilkan isi file yang sudah ada di terminal.

Selanjutnya, cari konten yang mengandung huruf 'a'. Tangkapan layar di bawah menunjukkan grep mengembalikan setiap baris yang menyertakan huruf 'a'.

grep mencari baris yang berisi huruf a dalam file sampel

Tanda sisipan '^' cocok dengan awal sebuah string. Contoh di bawah ini mencari konten yang diawali dengan huruf 'a'.

grep dengan jangkar caret yang hanya cocok dengan baris yang dimulai dengan huruf a

Hanya baris yang diawali dengan karakter tersebut yang difilter. Baris yang tidak diawali dengan karakter 'a' akan diabaikan.

Mari kita lihat contoh lain. Tangkapan layar di bawah ini sekali lagi menunjukkan isi file sampel sebelum difilter berdasarkan akhir baris.

Contoh isi file yang ditampilkan sebelum memfilter baris yang berakhiran huruf t.

Pilih hanya baris-baris yang berakhiran huruf 't' dengan menggunakan jangkar '$', seperti yang ditunjukkan di bawah ini.

grep dengan jangkar dolar yang hanya memilih baris yang berakhiran huruf t

Interval Ekspresi reguler

Ekspresi-ekspresi ini menentukan jumlah kemunculan suatu karakter dalam sebuah string. Ekspresi-ekspresi tersebut tercantum di bawah ini.

Ekspresi Deskripsi
{bukan} Cocok dengan karakter sebelumnya yang muncul 'n' kali dengan tepat
{n,m} Cocok dengan karakter sebelumnya yang muncul 'n' kali tetapi tidak lebih dari m
{N, } Cocok dengan karakter sebelumnya hanya jika muncul 'n' kali atau lebih

Sebagai contoh, saring semua baris yang mengandung karakter 'p'. Tangkapan layar di bawah ini menunjukkan baris yang cocok.

grep menyaring berkas sampel untuk baris yang berisi karakter p

Sekarang periksa apakah karakter 'p' muncul tepat dua kali dalam sebuah string, satu setelah yang lain. Sintaksnya adalah:

cat sample | grep -E p\{2}

Hasil dari pertandingan interval tersebut ditunjukkan di bawah ini.

grep -E ekspresi interval yang cocok dengan karakter p yang muncul tepat dua kali

Catatan: Anda perlu menambahkan -E dengan ekspresi reguler ini.

Ekspresi reguler yang diperluas

Ekspresi reguler ini menggabungkan lebih dari satu ekspresi. Beberapa di antaranya adalah:

Ekspresi Deskripsi
\+ Cocok dengan satu atau lebih kemunculan karakter sebelumnya
\? Cocok dengan nol atau satu kemunculan karakter sebelumnya

Sebagai contoh, cari semua kemunculan karakter 't'. Tangkapan layar di bawah ini menunjukkan hasilnya.

grep mencari semua baris yang berisi karakter t dalam file sampel

Misalkan Anda ingin menyaring baris di mana karakter 'a' mendahului karakter 't'. Anda dapat menggunakan perintah seperti di bawah ini:

cat sample|grep "a\+t"

Hasilnya ditampilkan pada tangkapan layar berikut.

grep ekspresi yang diperluas yang cocok dengan satu atau lebih karakter 'a' diikuti oleh 't'

Ekspansi penjepit

Sintaks untuk perluasan kurung kurawal adalah berupa urutan atau daftar item yang dipisahkan koma di dalam kurung kurawal '{}'. Item awal dan akhir dalam urutan dipisahkan oleh dua titik '..'.

Beberapa contohnya ditunjukkan di bawah ini.

Perintah echo menggunakan perluasan kurung kurawal untuk menghasilkan beberapa string dari sebuah urutan dan sebuah daftar.

Pada contoh di atas, perintah echo membuat string menggunakan perluasan kurung kurawal, menghasilkan beberapa string dari satu pola.

Pertanyaan Umum Demo Slot

Secara default, grep menggunakan ekspresi reguler dasar. egrep memungkinkan ekspresi yang diperluas (sama dengan grep -E), dan fgrep mencocokkan string tetap tanpa regex (grep -F). GNU grep modern menandai egrep dan fgrep sebagai usang, jadi lebih baik gunakan grep -E dan grep -F.

Kelas karakter mencocokkan kategori karakter. Ekspresi kurung siku seperti [az] mencocokkan rentang, sedangkan kelas POSIX seperti [[:alpha:]], [[:digit:]], dan [[:space:]] mencocokkan huruf, angka, dan spasi. Kelas-kelas ini menjaga agar pola tetap mudah dibaca dan portabel di berbagai lokal.

Tambahkan opsi -i, misalnya grep -i โ€œhelloโ€ sample. Ini akan cocok dengan Hello, HELLO, dan hello alike. Tanpa -i, ekspresi reguler peka terhadap huruf besar dan kecil, sehingga huruf besar dan huruf kecilnya diperlakukan sebagai dua karakter yang berbeda.

Karakter wildcard (globbing) pada shell memperluas nama file, di mana * berarti karakter apa pun dan ? berarti satu karakter. Ekspresi reguler mencocokkan teks di dalam file, di mana * berarti nol atau lebih karakter sebelumnya. Simbol yang sama memiliki arti yang berbeda dalam setiap konteks.

Gunakan opsi -o, misalnya grep -o โ€œa\+tโ€ sample. Alih-alih mencetak seluruh baris, grep hanya mencetak bagian yang cocok dengan pola, satu kecocokan per baris. Ini berguna untuk contohtracnilai-nilai seperti email atau angka.

Gunakan pergantian dengan simbol pipa. Dalam mode diperluas, grep -E โ€œcat|dogโ€ sample cocok dengan baris yang berisi cat atau dog. Dalam mode dasar, Anda harus mengescape-nya menjadi grep โ€œcat\|dogโ€ sample. Pergantian memungkinkan satu perintah untuk mencari beberapa pola sekaligus.

Asisten AI dapat mengubah deskripsi bahasa Inggris sederhana menjadi ekspresi reguler yang berfungsi, menjelaskan fungsi pola yang rumit, dan menyarankan perbaikan ketika pencocokan gagal. Alat pembelajaran mesin juga mendeteksi pola berulang dalam file log besar yang akan membosankan jika ditulis secara manual.

Ya. Kopilot GitHub Fitur ini menyarankan perintah grep dan ekspresi reguler langsung dari komentar atau pola parsial saat Anda mengetik. Ini mempercepat penulisan ekspresi kompleks, meskipun Anda harus menguji pola yang dihasilkan terhadap data sampel nyata sebelum mengandalkannya.

Ringkaslah postingan ini dengan: