Tutorial Perintah Grep - Cara Mencari File di Linux dan Unix dengan Recursive Find

grepsingkatan dari Pencarian Global Untuk Ekspresi Reguler dan Cetak . Ini adalah alat baris perintah yang digunakan dalam sistem UNIX dan Linux untuk mencari pola tertentu dalam sebuah file atau sekelompok file.

grephadir dengan banyak opsi yang memungkinkan kami melakukan berbagai tindakan terkait pencarian pada file. Di artikel ini, kita akan melihat cara menggunakan grepdengan opsi yang tersedia serta ekspresi reguler dasar untuk mencari file.

Cara Penggunaan grep

Tanpa melewatkan opsi apa pun, grepdapat digunakan untuk mencari pola dalam file atau sekelompok file. Sintaksnya adalah:

grep ''  

Perhatikan bahwa tanda kutip tunggal atau ganda diperlukan di sekitar teks jika lebih dari satu kata.

Anda juga dapat menggunakan wildcard (*) untuk memilih semua file dalam direktori.

Hasil dari ini adalah kemunculan pola (dengan garis yang ditemukan) di file (s). Jika tidak ada yang cocok, tidak ada keluaran yang akan dicetak ke terminal.

Misalnya, kita memiliki file berikut (disebut grep.txt):

Hello, how are you I am grep Nice to meet you 

grepPerintah berikut akan mencari semua kemunculan kata 'Anda':

grep you grep.txt 

Hasil dari ini adalah:

Hello, how are you Nice to meet you 

you diharapkan memiliki warna yang berbeda dari teks lainnya agar mudah mengidentifikasi apa yang dicari.

Tetapi grephadir dengan lebih banyak opsi yang membantu kami mencapai lebih banyak selama operasi pencarian. Mari kita lihat sembilan di antaranya saat menerapkannya pada contoh di atas.

Opsi digunakan dengan grep

1. -n(--line-number) - mencantumkan nomor baris

Ini mencetak kecocokan untuk teks bersama dengan nomor baris. Jika Anda melihat hasil yang kami miliki di atas, Anda akan melihat tidak ada nomor baris, hanya nomor yang cocok.

grep you grep.txt -n 

Hasil:

1: Hello, how are you 3: Nice to meet you 

2. -c(--count) - mencetak jumlah baris yang cocok

grep you grep.txt -c 

Hasil:

2 

Perhatikan bahwa jika ada 'Anda' lain di baris satu, opsi -cmasih akan mencetak 2. Ini karena ini berkaitan dengan jumlah baris di mana kecocokan muncul, bukan jumlah kecocokan.

3. -v(--invert-match) - mencetak garis yang tidak cocok dengan pola yang ditentukan

grep you grep.txt -v -n 

Hasil:

2. I am grep 

Perhatikan bahwa kami juga menggunakan opsi -n? Ya, Anda dapat menerapkan beberapa opsi dalam satu perintah.

4. -i(--ignore-case) - digunakan untuk kasus ketidakpekaan

# command 1 grep You grep.txt # command 2 grep YoU grep.txt -i 

Hasil:

# result 1 # no result # result 2 Hello, how are you Nice to meet you 

5. -l(--files-with-match) - mencetak nama file yang cocok dengan pola

# command 1 grep you grep.txt -l # command 2 grep You grep.txt -i -l 

Hasil:

# result 1 grep.txt # result 2 # all files in the current directory that matches # the text 'You' case insensitively 
#### 6. `-w` (--word-regexp) - print matches of the whole word 

Secara default, grepcocok dengan string yang berisi pola yang ditentukan. Ini berarti grep yo grep.txtakan mencetak hasil yang sama seperti grep yo grep.txtkarena 'yo' dapat ditemukan dalam diri Anda. Begitu pula dengan 'ou'.

Dengan opsi tersebut -w, greppastikan kecocokan memiliki pola yang sama persis seperti yang ditentukan. Contoh:

grep yo grep.txt -w 

Hasil:

Tidak ada hasil!

7. -o(--hanya-matching) - hanya mencetak pola yang cocok

Secara default, grepmencetak garis di mana pola yang cocok ditemukan. Dengan opsi -o, hanya pola yang cocok dicetak baris demi baris. Contoh:

grep yo grep.txt -o 

Hasil:

yo 

8. -A(- after-context) dan -B(--before-context) - mencetak garis setelah dan sebelum (masing-masing) pola yang cocok

grep grep grep.txt -A 1 -B 1 

Hasil:

Hello, how are you I am grep Nice to meet you 

Pola yang cocok ini pada baris 2. -A 1berarti satu baris setelah baris yang cocok dan -B 1berarti satu baris sebelum baris yang cocok.

Ada juga -Copsi (--context) yang sama dengan -A+ -B. Nilai yang diteruskan ke -Cakan digunakan untuk -Adan -B.

9. -R(--dereference-recursive) - pencarian rekursif

Secara default, greptidak dapat mencari direktori. Jika Anda mencoba melakukannya, Anda akan mendapatkan pesan kesalahan ("Adalah direktori"). Dengan opsi -R, mencari file dalam direktori dan subdirektori menjadi mungkin. Contoh:

grep you . 

Hasil:

# 'you' matches in a folders # and files starting from the # current directory 

Ekspresi reguler untuk pola

grepjuga memungkinkan ekspresi reguler dasar untuk menentukan pola. Dua diantaranya adalah:

1. ^pattern- awal baris

Pola ini berarti bahwa grepakan cocok dengan string yang barisnya dimulai dengan string yang ditentukan setelahnya ^. Contoh:

grep ^I grep.txt -n 

Hasil:

2: I 

2. pattern$- akhir baris

Berbeda dengan ^, $menentukan pola yang akan dicocokkan jika garis diakhiri dengan string sebelumnya $. Contoh:

grep you$ grep.txt 

Hasil:

1: Hello, how are you 3: Nice to meet you 

Bungkus

grepadalah alat yang ampuh untuk mencari file di terminal. Memahami cara menggunakannya memberi Anda kemampuan untuk menemukan file dengan mudah melalui terminal.

Ada lebih banyak opsi yang dilampirkan ke alat ini. Anda dapat menemukannya dengan man grep.