GNU/Linux >> Belajar Linux >  >> Linux

15 Contoh Perintah Grep Praktis Di Linux / UNIX


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

Linux
  1. Perintah cp di Linux:7 Contoh Praktis

  2. Perintah Shutdown Linux:5 Contoh Praktis

  3. UNIX / Linux:10 Contoh Perintah Netstat

  1. 5 Contoh Praktis Perintah dd di Linux

  2. 10 Contoh Perintah Linux nm Praktis

  3. 10 Contoh Perintah Xargs di Linux / UNIX

  1. 14 Contoh Perintah Grep di Linux

  2. 5 Contoh Praktis Perintah "cd" di Linux

  3. 16 Contoh Praktis Perintah Traceroute di Linux