Belajar dengan membaca secara berurutan

Pencarian Teks — grep

Pelajari dasar-dasar menemukan baris yang mengandung string, plus kapan memakai -i untuk mengabaikan huruf besar/kecil, -n untuk nomor baris, dan -r untuk pencarian rekursif — praktik langsung di terminal browser.

Menemukan String — grep

grep adalah perintah yang mengambil dan menampilkan hanya baris-baris dalam file yang mengandung string tertentu.

Gunakan dengan grep string-pencarian namafile, dan jika ada baris yang cocok, baris tersebut dicetak ke layar apa adanya.

Gunakan untuk menemukan hanya baris yang kamu butuhkan dari log yang besar.

grep mengambil hanya baris yang cocok
applebananacherrygrep banana fruits.txttampilkan hanyabanana yang cocokbaris lain tidakmuncul
grep mengambil hanya baris yang mengandung string yang diberikan, dan tidak mengeluarkan sisanya.
echo 'error: disk full' > log.txt   # buat baris 1
echo 'info: started' >> log.txt     # tambahkan
echo 'error: timeout' >> log.txt    # tambahkan
grep error log.txt                  # 2 baris yang mengandung error
grep info log.txt                   # 1 baris yang mengandung info

① Buat baris 1 dengan echo 'error: disk full' > log.txt, lalu tambahkan dengan echo 'info: started' >> log.txt dan echo 'error: timeout' >> log.txt untuk membuat file bahan 3 baris.

② Gunakan grep untuk menampilkan hanya baris yang mengandung error dari log.txt.

③ Pastikan setiap baris yang ditampilkan mengandung error. (Jalankan dengan benar dan penjelasan akan muncul.)

Linux console
0 / 4 selesai
Loading Linux Terminal...

Abaikan Huruf Besar/Kecil — -i / Nomor Baris — -n

grep membedakan huruf besar dan kecil.

Tambahkan -i untuk mencari tanpa perbedaan itu, sehingga kamu bisa menangkap baik Error maupun error.

Tambahkan -n dan nomor baris ditampilkan di depan setiap baris yang cocok, sehingga kamu bisa tahu posisinya dalam file.

-i dan -n bisa digabungkan dan diterapkan sekaligus, seperti grep -in error app.txt.

OpsiArtiContoh
-iJangan bedakan huruf besar dan kecilgrep -i error log.txt
-nTambahkan nomor baris di depan setiap kecocokangrep -n error log.txt
-vTampilkan baris yang tidak cocokgrep -v info log.txt
-rCari direktori secara rekursifgrep -r TODO src
echo 'Error in disk' > app.txt   # buat baris 1
echo 'error in app' >> app.txt   # tambahkan
echo 'ok' >> app.txt             # tambahkan
grep -i error app.txt            # 2 baris Error dan error
grep -n error app.txt            # 2:error in app (dengan nomor baris)

① Buat baris 1 dengan echo 'Error in disk' > app.txt, lalu tambahkan dengan echo 'error in app' >> app.txt dan echo 'ok' >> app.txt untuk membuat bahan dengan campuran huruf besar/kecil.

② Pertama cari error dengan grep dan opsi yang mengabaikan huruf besar/kecil, dan pastikan baris Error juga tertangkap.

③ Selanjutnya jalankan pencarian yang sama dengan opsi yang menampilkan nomor baris, dan pastikan nomor baris muncul di depan setiap kecocokan.

Linux console
0 / 5 selesai
Loading Linux Terminal...

Mengecualikan Baris yang Tidak Cocok — -v

Tambahkan -v dan grep menampilkan baris yang tidak mengandung string yang diberikan.

Sementara grep biasa mempertahankan baris yang cocok, -v menghapus baris yang cocok dan mengeluarkan sisanya.

Gunakan saat kamu ingin membaca log dengan baris yang tidak diperlukan (seperti info atau debug) sudah dihapus.

grep -v mempertahankan baris yang tidak cocok
error: disk fullinfo: startederror: timeoutgrep -v info log.txtbaris dengan infodikecualikantampilkan 2 bariserror yang tersisa
-v mengecualikan baris yang mengandung string yang diberikan dan hanya menampilkan sisanya.
echo 'error: disk full' > log.txt   # buat baris 1
echo 'info: started' >> log.txt     # tambahkan
echo 'error: timeout' >> log.txt    # tambahkan
grep -v info log.txt                # 2 baris yang tidak mengandung info

① Buat baris 1 dengan echo 'error: disk full' > log.txt, lalu tambahkan dengan echo 'info: started' >> log.txt dan echo 'error: timeout' >> log.txt untuk membuat file bahan 3 baris.

② Gunakan grep dengan opsi yang mempertahankan baris yang tidak cocok untuk menampilkan hanya baris dari log.txt yang tidak mengandung info.

③ Pastikan baris yang ditampilkan adalah 2 baris error dan baris info sudah hilang.

Linux console
0 / 4 selesai
Loading Linux Terminal...

Mencari Direktori Secara Rekursif — -r

Jika kamu ingin mencari bukan hanya satu file tetapi setiap file di bawah direktori, tambahkan -r dan berikan direktori alih-alih nama file.

Ia akan menelusuri subdirektori secara rekursif dan menampilkan baris yang cocok dalam bentuk namafile:baris.

grep -r menelusuri direktori secara rekursif
grep -r TODO srcsrc/src/a.txtTODO: fix latersrc/sub/src/sub/b.txtTODO: review
grep -r mulai dari src yang kamu berikan dan menelusuri ke subdirektori src/sub untuk mencari setiap file.
mkdir -p src/sub                       # buat direktori bahan
echo 'TODO: fix later' > src/a.txt     # 1 file di direktori induk
echo 'TODO: review' > src/sub/b.txt    # 1 file di subdirektori
grep -r TODO src                       # cari secara rekursif di bawah src

① Buat pohon bahan dengan subdirektori menggunakan mkdir -p src/sub.

② Dengan echo 'TODO: fix later' > src/a.txt dan echo 'TODO: review' > src/sub/b.txt, buat file di direktori induk maupun subdirektori.

③ Cari TODO di bawah direktori src dengan grep dan opsi pencarian rekursif, dan pastikan baris dari kedua file muncul.

Linux console
0 / 4 selesai
Loading Linux Terminal...
QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Apa yang ditampilkan saat kamu menjalankan grep error log.txt?

Soal 2Opsi mana yang kamu tambahkan ke grep untuk mencari tanpa membedakan huruf besar dan kecil?

Soal 3Bagaimana perilaku grep saat kamu menambahkan -r dan memberikan direktori?