0Pricing
DevOps Bootcamp · Pelajaran

Menggabungkan Regex dengan sed/awk

Integrasikan ekspresi reguler ke dalam perintah 'sed' dan 'awk' untuk penyaringan, penggantian, dan ekstraksi data teks tingkat lanjut.

Menggabungkan Regex dengan sed/awk adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Ekspresi Reguler dengan sed dan awk

Selamat datang di pelajaran terakhir tentang Ekspresi Reguler! Kita telah mempelajari kekuatan ekspresi reguler untuk pencocokan pola.

Sekarang, mari gabungkan kekuatan tersebut dengan dua alat Linux penting: sed (penyunting aliran) dan awk (bahasa pemindaian dan pemrosesan pola). Integrasi ini memungkinkan penyaringan teks, penggantian, dan ekstraksi data tingkat lanjut.

sed: Memfilter dengan Ekspresi Reguler

sed dapat menggunakan ekspresi reguler untuk memfilter baris. Alamat /pattern/ memungkinkan sed menerapkan perintah hanya pada baris yang cocok dengan ekspresi reguler yang diberikan.

Opsi -n menonaktifkan keluaran bawaan, sedangkan p mencetak baris yang cocok secara eksplisit.

echo -e "apple
banana
orange" | sed -n '/an/p'

sed: Mengganti dengan Ekspresi Reguler

Perintah s/regex/replacement/ dalam sed menunjukkan keunggulan ekspresi reguler dalam transformasi teks. Anda dapat mengganti pola yang ditemukan oleh ekspresi reguler dengan teks baru.

Tanda g mengganti semua kemunculan dalam satu baris, sedangkan i membuat pencocokan tidak membedakan huruf besar dan kecil.

echo "Hello world, hello universe" | sed 's/hello/hi/gi'

sed: Kelompok Penangkap dan Referensi Balik

Ekspresi reguler memungkinkan Anda mendefinisikan kelompok penangkap menggunakan tanda kurung (). Anda kemudian dapat merujuk teks yang cocok dengan kelompok tersebut dalam string pengganti menggunakan referensi balik seperti \1, \2, dan seterusnya.

Gunakan -E dengan sed untuk sintaks ekspresi reguler yang diperluas, misalnya untuk menggunakan () tanpa karakter pelolos.

echo "Doe, John" | sed -E 's/([A-Za-z]+), ([A-Za-z]+)/\2 \1/'

awk: Memfilter Rekaman dengan Ekspresi Reguler

awk menggunakan pola ekspresi reguler untuk memilih rekaman (baris) sebelum menjalankan tindakan. Jika suatu pola diberikan sebelum blok tindakan {...}, tindakan tersebut hanya dijalankan untuk baris yang cocok dengan pola.

Hal ini mirip dengan grep, tetapi memungkinkan pemrosesan yang lebih kompleks.

echo -e "Line 1: apple
Line 2: banana
Line 3: orange" | awk '/banana/'

awk: Ekspresi Reguler pada Ruas Tertentu

Anda dapat menerapkan pola ekspresi reguler pada ruas tertentu dalam awk menggunakan operator ~ (cocok) dan !~ (tidak cocok). Ini sangat berguna untuk data terstruktur.

Misalnya, $1 ~ /pattern/ memeriksa apakah ruas pertama cocok dengan ekspresi reguler.

echo "Name: John, Age: 30
Name: Jane, Age: 25" | awk '$1 ~ /Name/ {print $2}'

awk: Mengekstrak Hasil Pencocokan (match, substr)

awk menyediakan fungsi seperti match(string, regex) untuk menemukan posisi dan panjang hasil pencocokan, serta substr(string, start, length) untuk mengekstraknya.

Setelah match(), RSTART menyimpan posisi awal dan RLENGTH menyimpan panjang hasil pencocokan.

echo "ItemCode: ABC123 Price: 45.67" | awk '{match($0, /[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH)}'

awk: Penggantian di Tempat (sub, gsub)

awk juga memiliki fungsi bawaan untuk penggantian: sub(regex, replacement, target) untuk pencocokan pertama dan gsub(regex, replacement, target) untuk semua pencocokan.

Jika target tidak dicantumkan, $0 (seluruh rekaman) akan digunakan. Anda dapat menentukan ruas seperti $1.

echo "apple,banana,orange" | awk '{gsub(/a/, "X", $0); print}'

Memilih antara sed dan awk

Meskipun sed dan awk sama-sama dapat menggunakan ekspresi reguler untuk penggantian dan penyaringan, keduanya unggul dalam bidang yang berbeda:

  • sed umumnya lebih baik untuk transformasi dan penggantian sederhana baris demi baris. Alat ini adalah penyunting aliran.
  • awk lebih andal untuk memproses data terstruktur (ruas), melakukan perhitungan, serta menangani logika yang lebih kompleks atau pola multibaris. Alat ini merupakan bahasa pemrograman tersendiri.

Keduanya sering dapat dirangkai menggunakan pipa | untuk tugas yang sangat kompleks.

Tantangan: Mengekstrak dan Mentransformasi

Perhatikan baris teks berikut:

Order#12345: ProductX - Price $19.99

Perintah mana yang akan mengekstrak harga dengan benar (misalnya, '19.99'), lalu mengubah simbol mata uangnya menjadi 'EUR'?

Ringkasan: Ekspresi Reguler dengan sed dan awk

Anda telah menguasai penggabungan Ekspresi Reguler dengan sed dan awk!

  • sed unggul dalam memfilter dan mengganti teks baris demi baris, menggunakan ekspresi reguler untuk pencocokan pola dan penggantian yang andal.
  • awk menyediakan pendekatan yang lebih terprogram, sehingga ekspresi reguler dapat digunakan untuk memfilter rekaman, mencocokkan teks dalam ruas tertentu, serta mengekstrak atau mengubah data menggunakan fungsi seperti match(), substr(), sub(), dan gsub().

Keterampilan ini sangat penting untuk pemrosesan teks tingkat lanjut dan pembuatan skrip di Linux.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menggabungkan Regex dengan sed/awk” gratis?

Ya — teks lengkap “Menggabungkan Regex dengan sed/awk” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menggabungkan Regex dengan sed/awk”?

Integrasikan ekspresi reguler ke dalam perintah 'sed' dan 'awk' untuk penyaringan, penggantian, dan ekstraksi data teks tingkat lanjut. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Menggabungkan Regex dengan sed/awk” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pengantar Ekspresi Reguler (Regex)
  2. Grep Lanjutan dengan Regex
  3. Menggabungkan Regex dengan sed/awk
  4. Grup Penangkap, Referensi Balik & Substitusi
← Kembali ke DevOps Bootcamp