
Foto milik Alexôme
Anda harus memahami perintah grep Linux.
Ini adalah bagian dari seri 15 Contoh yang sedang berlangsung, di mana 15 contoh rinci akan diberikan untuk perintah atau fungsi tertentu. Sebelumnya kita telah membahas 15 contoh praktis untuk perintah find Linux, riwayat baris perintah Linux, dan perintah mysqladmin.
Dalam artikel ini mari kita tinjau 15 contoh praktis perintah grep Linux yang akan sangat berguna bagi pemula dan ahli.
Pertama buat file demo_berikut yang akan digunakan dalam contoh di bawah ini untuk mendemonstrasikan perintah grep.
$ cat demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE. this line is the 1st lower case line in this file. This Line Has All Its First Character Of The Word With Upper Case. Two lines above this line is empty. And this is the last line.
1. Cari string yang diberikan dalam satu file
Penggunaan dasar dari perintah grep adalah untuk mencari string tertentu dalam file yang ditentukan seperti yang ditunjukkan di bawah ini.
Syntax: grep "literal_string" filename
$ grep "this" demo_file this line is the 1st lower case line in this file. Two lines above this line is empty. And this is the last line.
2. Memeriksa string yang diberikan dalam beberapa file.
Syntax: grep "string" FILE_PATTERN
Ini juga merupakan penggunaan dasar dari perintah grep. Untuk contoh ini, mari kita salin demo_file ke demo_file1. Output grep juga akan menyertakan nama file di depan baris yang cocok dengan pola tertentu seperti yang ditunjukkan di bawah ini. Ketika shell Linux melihat karakter meta, ia melakukan ekspansi dan memberikan semua file sebagai input ke grep.
$ cp demo_file demo_file1 $ grep "this" demo_* demo_file:this line is the 1st lower case line in this file. demo_file:Two lines above this line is empty. demo_file:And this is the last line. demo_file1:this line is the 1st lower case line in this file. demo_file1:Two lines above this line is empty. demo_file1:And this is the last line.
3. Pencarian peka huruf besar/kecil menggunakan grep -i
Syntax: grep -i "string" FILE
Ini juga merupakan penggunaan dasar grep. Ini mencari kasus string/pola yang diberikan secara tidak sensitif. Jadi itu cocok dengan semua kata seperti “the”, “THE” dan “The” case insensitive seperti yang ditunjukkan di bawah ini.
$ grep -i "the" demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE. this line is the 1st lower case line in this file. This Line Has All Its First Character Of The Word With Upper Case. And this is the last line.
4. Mencocokkan ekspresi reguler dalam file
Syntax: grep "REGEX" filename
Ini adalah fitur yang sangat kuat, jika Anda dapat menggunakan ekspresi reguler secara efektif. Dalam contoh berikut, ia mencari semua pola yang dimulai dengan "garis" dan diakhiri dengan "kosong" dengan apa pun di antaranya. yaitu Untuk mencari “baris[anything in-between]empty” di demo_file.
$ grep "lines.*empty" demo_file Two lines above this line is empty.
Dari dokumentasi grep:Ekspresi reguler dapat diikuti oleh salah satu dari beberapa operator pengulangan:
- ? Item sebelumnya bersifat opsional dan cocok paling banyak satu kali.
- * Item sebelumnya akan dicocokkan nol kali atau lebih.
- + Item sebelumnya akan dicocokkan satu kali atau lebih.
- {n} Item sebelumnya dicocokkan tepat sebanyak n kali.
- {n,} Item sebelumnya dicocokkan sebanyak n kali atau lebih.
- {,m} Item sebelumnya dicocokkan paling banyak m kali.
- {n,m} Item sebelumnya dicocokkan setidaknya n kali, tetapi tidak lebih dari m kali.
5. Memeriksa kata-kata lengkap, bukan untuk sub-string menggunakan grep -w
Jika Anda ingin mencari kata, dan untuk menghindarinya agar cocok dengan substring, gunakan opsi -w. Melakukan penelusuran normal saja akan menampilkan semua baris.
Contoh berikut adalah grep reguler yang mencari "is". Saat Anda mencari “is”, tanpa opsi apa pun akan muncul “is”, “his”, “this” dan segala sesuatu yang memiliki substring “is”.
$ grep -i "is" demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE. this line is the 1st lower case line in this file. This Line Has All Its First Character Of The Word With Upper Case. Two lines above this line is empty. And this is the last line.
Contoh berikut adalah grep WORD yang hanya mencari kata “is”. Harap dicatat bahwa output ini tidak mengandung baris "Baris Ini Memiliki Semua Karakter Pertama Kata Dengan Huruf Besar", meskipun "adalah" ada di "Ini", karena berikut ini hanya mencari kata "adalah ” dan bukan untuk “ini”.
$ grep -iw "is" demo_file THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE. this line is the 1st lower case line in this file. Two lines above this line is empty. And this is the last line.
6. Menampilkan garis sebelum/sesudah/sekitar pertandingan menggunakan grep -A, -B dan -C
Saat melakukan grep pada file besar, mungkin berguna untuk melihat beberapa baris setelah pertandingan. Anda mungkin merasa berguna jika grep dapat menunjukkan tidak hanya baris yang cocok tetapi juga baris setelah/sebelum/sekitar pertandingan.
Silakan buat file demo_text berikut untuk contoh ini.
$ cat demo_text 4. Vim Word Navigation You may want to do several navigation in relation to the words, such as: * e - go to the end of the current word. * E - go to the end of the current WORD. * b - go to the previous (before) word. * B - go to the previous (before) WORD. * w - go to the next word. * W - go to the next WORD. WORD - WORD consists of a sequence of non-blank characters, separated with white space. word - word consists of a sequence of letters, digits and underscores. Example to show the difference between WORD and word * 192.168.1.1 - single WORD * 192.168.1.1 - seven words.
6.1 Menampilkan N baris setelah pertandingan
-A adalah opsi yang mencetak N baris yang ditentukan setelah kecocokan seperti yang ditunjukkan di bawah ini.
Syntax: grep -A <N> "string" FILENAME
Contoh berikut mencetak baris yang cocok, bersama dengan 3 baris setelahnya.
$ grep -A 3 -i "example" demo_text Example to show the difference between WORD and word * 192.168.1.1 - single WORD * 192.168.1.1 - seven words.
6.2 Menampilkan N baris sebelum pertandingan
-B adalah opsi yang mencetak N baris yang ditentukan sebelum pertandingan.
Syntax: grep -B <N> "string" FILENAME
Bila Anda memiliki opsi untuk menampilkan N garis setelah pertandingan, Anda memiliki opsi -B untuk sebaliknya.
$ grep -B 2 "single WORD" demo_text Example to show the difference between WORD and word * 192.168.1.1 - single WORD
6.3 Menampilkan N garis di sekitar pertandingan
-C adalah opsi yang mencetak baris N yang ditentukan sebelum pertandingan. Dalam beberapa kesempatan Anda mungkin ingin pertandingan ditampilkan dengan garis dari kedua sisi. Opsi ini menunjukkan N garis di kedua sisi (sebelum &sesudah) pertandingan.
$ grep -C 2 "Example" demo_text word - word consists of a sequence of letters, digits and underscores. Example to show the difference between WORD and word * 192.168.1.1 - single WORD
7. Menyorot pencarian menggunakan GREP_OPTIONS
Saat grep mencetak baris dari file dengan pola / string yang telah Anda berikan, jika Anda ingin menyorot bagian mana yang cocok dengan baris, maka Anda harus mengikuti cara berikut.
Saat Anda melakukan ekspor berikut, Anda akan mendapatkan sorotan dari pencarian yang cocok. Dalam contoh berikut, ini akan menyorot semua ini saat Anda menyetel variabel lingkungan GREP_OPTIONS seperti yang ditunjukkan di bawah ini.
$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8' $ grep this demo_file this line is the 1st lower case line in this file. Two lines above this line is empty. And this is the last line.
8. Mencari di semua file secara rekursif menggunakan grep -r
Ketika Anda ingin mencari di semua file di bawah direktori saat ini dan sub direktorinya. -r opsi adalah salah satu yang perlu Anda gunakan. Contoh berikut akan mencari string “ramesh” di semua file di direktori saat ini dan semua subdirektorinya.
$ grep -r "ramesh" *
9. Balikkan kecocokan menggunakan grep -v
Anda memiliki pilihan yang berbeda untuk menunjukkan garis yang cocok, untuk menunjukkan garis sebelum pertandingan, dan untuk menunjukkan garis setelah pertandingan, dan untuk menyorot kecocokan. Jadi pasti Anda juga menginginkan opsi -v untuk melakukan pencocokan terbalik.
Bila Anda ingin menampilkan garis yang tidak sesuai dengan string/pola yang diberikan, gunakan opsi -v seperti di bawah ini. Contoh ini akan menampilkan semua baris yang tidak cocok dengan kata “go”.
$ grep -v "go" demo_text 4. Vim Word Navigation You may want to do several navigation in relation to the words, such as: WORD - WORD consists of a sequence of non-blank characters, separated with white space. word - word consists of a sequence of letters, digits and underscores. Example to show the difference between WORD and word * 192.168.1.1 - single WORD * 192.168.1.1 - seven words.
10. menampilkan garis yang tidak cocok dengan semua pola yang diberikan.
Syntax: grep -v -e "pattern" -e "pattern"
$ cat test-file.txt a b c d $ grep -v -e "a" -e "b" -e "c" test-file.txt d
11. Menghitung jumlah kecocokan menggunakan grep -c
Bila Anda ingin menghitung berapa banyak garis yang cocok dengan pola/string yang diberikan, gunakan opsi -c.
Syntax: grep -c "pattern" filename
$ grep -c "go" demo_text 6
Bila Anda ingin mencari tahu berapa banyak garis yang cocok dengan polanya
$ grep -c this demo_file 3
Bila ingin mengetahui berapa banyak garis yang tidak sesuai dengan pola
$ grep -v -c this demo_file 4
12. Tampilkan hanya nama file yang cocok dengan pola yang diberikan menggunakan grep -l
Jika Anda ingin grep hanya menampilkan nama file yang cocok dengan pola yang diberikan, gunakan opsi -l (huruf kecil L).
Ketika Anda memberikan beberapa file ke grep sebagai input, ini akan menampilkan nama file yang berisi teks yang sesuai dengan polanya, akan sangat berguna ketika Anda mencoba menemukan beberapa catatan di seluruh struktur direktori Anda.
$ grep -l this demo_* demo_file demo_file1
13. Hanya tampilkan string yang cocok
Secara default grep akan menampilkan baris yang cocok dengan pola/string yang diberikan, tetapi jika Anda ingin grep hanya menampilkan string yang cocok dari pola tersebut, gunakan opsi -o.
Ini mungkin tidak terlalu berguna ketika Anda memberikan string lurus ke depan. Tapi itu menjadi sangat berguna ketika Anda memberikan pola regex dan mencoba melihat apa yang cocok dengannya
$ grep -o "is.*line" demo_file is line is the 1st lower case line is line is is the last line
14. Tunjukkan posisi kecocokan di garis
Saat Anda ingin grep menunjukkan posisi yang cocok dengan pola dalam file, gunakan opsi berikut sebagai
Syntax: grep -o -b "pattern" file
$ cat temp-file.txt 12345 12345 $ grep -o -b "3" temp-file.txt 2:3 8:3
Catatan: Output dari perintah grep di atas bukanlah posisi pada baris, melainkan byte offset dari keseluruhan file.
15. Tampilkan nomor baris saat menampilkan output menggunakan grep -n
Untuk menunjukkan nomor baris file dengan baris yang cocok. Itu melakukan penomoran baris berbasis 1 untuk setiap file. Gunakan opsi -n untuk memanfaatkan fitur ini.
$ grep -n "go" demo_text 5: * e - go to the end of the current word. 6: * E - go to the end of the current WORD. 7: * b - go to the previous (before) word. 8: * B - go to the previous (before) WORD. 9: * w - go to the next word. 10: * W - go to the next WORD.
Tutorial Grep Tambahan
- 7 Contoh Operator Linux Grep OR, Grep AND, Grep NOT
- Ekspresi Reguler dalam Perintah Grep dengan 10 Contoh – Bagian I
- Ekspresi Reguler Tingkat Lanjut dalam Perintah Grep dengan 10 Contoh – Bagian II
- Telusuri file *.bz2 menggunakan bzgrep, dan file *.gz menggunakan zgrep
Artikel Linux yang Luar Biasa
Berikut adalah beberapa 15 contoh yang mengagumkan artikel yang mungkin bermanfaat bagi Anda.
- Linux Crontab:15 Contoh Pekerjaan Cron yang Luar Biasa
- Bu, aku menemukannya! — 15 Contoh Perintah Temukan Linux yang Praktis
- 15 Contoh Untuk Menguasai Sejarah Baris Perintah Linux
- Perintah Unix LS:15 Contoh Praktis