From 974294522a69d11c70dc51a972e5b88b3b7ed20a Mon Sep 17 00:00:00 2001 From: kechenk Date: Wed, 18 Sep 2024 15:14:04 +0700 Subject: [PATCH] Materi Regex --- advance/00_regex/README.md | 57 +++++++++++++++++++++++++++++ advance/00_regex/buah.txt | 10 +++++ advance/00_regex/regex.sh | 1 + basic/00_hello_world/hello_world.sh | 0 4 files changed, 68 insertions(+) create mode 100644 advance/00_regex/README.md create mode 100644 advance/00_regex/buah.txt create mode 100755 advance/00_regex/regex.sh mode change 100644 => 100755 basic/00_hello_world/hello_world.sh diff --git a/advance/00_regex/README.md b/advance/00_regex/README.md new file mode 100644 index 0000000..506bbe5 --- /dev/null +++ b/advance/00_regex/README.md @@ -0,0 +1,57 @@ + +# **Regular Expression (Regex)** + +**Regex** adalah singkatan dari _Regular Expression_, yaitu serangkaian karakter yang mendefinisikan **pola** pencarian untuk melakukan proses _**matching**_, _**locating**_, dan _**text manipulation**_. + +Dengan Regex, kita dapat melakukan pencarian yang lebih kompleks dan fleksibel dibandingkan dengan pencarian teks biasa. + +--- + +## **Perintah Terkait Regex: `GREP`, `AWK`, `SED`** + +### 1. **Grep** +`grep` digunakan untuk mencari _string_ di dalam sebuah _line_ teks, baik itu di dalam satu file atau dalam beberapa file di sebuah folder. `grep` sangat efektif untuk menemukan pola sederhana dalam teks. + +**Contoh:** +```bash +grep "pattern" file.txt +``` + +### 2. **Awk** +`awk` adalah alat yang lebih canggih dibandingkan `grep`. Selain melakukan pencarian teks seperti `grep`, `awk` juga bisa memproses dan memanipulasi data kolom seperti pada file CSV atau tabel teks lainnya. Dengan kata lain, `awk` adalah `grep` yang ditingkatkan dengan kemampuan pemrosesan data berbasis kolom. + +**Contoh:** +```bash +awk '$1 ~ /pattern/ {print $0}' file.csv +``` + +### 3. **Sed** +`sed` adalah alat yang digunakan untuk memodifikasi teks berdasarkan pola tertentu. Ini sering digunakan untuk melakukan penggantian teks (_substitution_) dan manipulasi sederhana berdasarkan _Regular Expression_. Namun, `sed` lebih jarang digunakan dibandingkan `grep` atau `awk` dalam skenario sehari-hari. + +**Contoh:** +```bash +sed 's/pattern/replacement/' file.txt +``` + +--- + +## **Contoh Penggunaan `awk` dengan Regex** + +Berikut adalah contoh penggunaan `awk` untuk mencocokkan dan mencetak baris berdasarkan kolom pertama yang memenuhi pola regex. + +```bash +awk '$1 ~ /p[o]/ {print $0}' "fileanda.txt" +``` + +### **Penjelasan:** + +- **`$1`** : Mengacu pada kolom pertama dari setiap baris. +- **`~`** : Operator pencocokan regex. +- **`/p[o]/`** : Pola yang mencocokkan string yang berisi huruf 'p' diikuti oleh huruf 'o'. +- **`{print $0}`** : Mencetak seluruh baris jika kolom pertama sesuai dengan pola regex. + +Jadi, perintah di atas akan mencetak semua baris dari `fileanda.txt` di mana kolom pertamanya mengandung string 'po'. + +--- + +Dengan memahami penggunaan dasar dari `grep`, `awk`, dan `sed`, serta cara menggunakan regex, kamu bisa melakukan pencarian dan manipulasi teks yang lebih efisien dan fleksibel! diff --git a/advance/00_regex/buah.txt b/advance/00_regex/buah.txt new file mode 100644 index 0000000..d29f68d --- /dev/null +++ b/advance/00_regex/buah.txt @@ -0,0 +1,10 @@ +apple red 4 +banana yellow 6 +strawberry red 3 +raspberry red 99 +grape purple 10 +apple green 8 +plum purple 2 +kiwi brown 4 +potato brown 9 +pineapple yellow 5 \ No newline at end of file diff --git a/advance/00_regex/regex.sh b/advance/00_regex/regex.sh new file mode 100755 index 0000000..c7d6660 --- /dev/null +++ b/advance/00_regex/regex.sh @@ -0,0 +1 @@ +awk -e '$1 ~ /p[o]/ {print $0}' buah.txt \ No newline at end of file diff --git a/basic/00_hello_world/hello_world.sh b/basic/00_hello_world/hello_world.sh old mode 100644 new mode 100755