Skip to content

Commit

Permalink
Merge pull request #29 from Kechenk/Issue1
Browse files Browse the repository at this point in the history
feat: menambahkan materi regex
  • Loading branch information
rulanugrh authored Sep 19, 2024
2 parents 03bef5d + 9742945 commit 79cbd79
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 0 deletions.
57 changes: 57 additions & 0 deletions advance/00_regex/README.md
Original file line number Diff line number Diff line change
@@ -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!
10 changes: 10 additions & 0 deletions advance/00_regex/buah.txt
Original file line number Diff line number Diff line change
@@ -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
1 change: 1 addition & 0 deletions advance/00_regex/regex.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
awk -e '$1 ~ /p[o]/ {print $0}' buah.txt
Empty file modified basic/00_hello_world/hello_world.sh
100644 → 100755
Empty file.

0 comments on commit 79cbd79

Please sign in to comment.