Apa perbedaan antara grep, egrep dan fgrep di linux?

Apa perbedaan antara grep, egrep dan fgrep di linux?

Salah satu alat pencarian terkenal di sistem seperti Unix yang dapat digunakan untuk mencari apa pun apakah itu file, atau baris atau beberapa baris dalam file adalah utilitas grep. Ini sangat luas dalam fungsionalitas yang dapat dikaitkan dengan sejumlah besar opsi yang didukungnya seperti: mencari menggunakan pola string, atau pola reg-ex atau reg-ex berbasis perl,.

Perbedaan antara GREP, Egrep dan Fgrep di Linux

Karena fungsinya yang bervariasi, ia memiliki banyak varian termasuk grep, Egrep (GREP yang diperluas), fgrep (Memperbaiki grep), pgrep (Memproses grep), rgrep (Grep rekursif) dll. Tetapi varian ini memiliki perbedaan kecil untuk asli grep yang telah membuat mereka populer dan digunakan oleh berbagai programmer Linux untuk tugas -tugas tertentu.

Hal utama yang masih harus diselidiki adalah perbedaan antara tiga varian utama i.e. 'grep', 'egrep' Dan 'fgrep' Grep yang membuat pengguna Linux memilih satu atau versi lainnya sesuai kebutuhan.

Beberapa meta-karakter khusus Grep

  1. + - Setara dengan satu atau lebih kejadian karakter sebelumnya.
  2. ? - Ini menunjukkan hampir 1 pengulangan karakter sebelumnya. Menyukai: A? Akan cocok 'A' atau 'A A'.
  3. ( - Mulai ekspresi pergantian.
  4. ) - Akhir ekspresi pergantian.
  5. | - Mencocokkan salah satu ekspresi yang dipisahkan oleh '|'. Menyukai: “(A | b) cde” akan cocok 'abcde' atau 'bbcde'.
  6. - Meta-karakter ini menunjukkan awal dari spesifikasi rentang. Menyukai: “A 2” pertandingan "A A" dalam file i.e. A 2 kali.
  7. - Meta-karakter ini menunjukkan akhir rentang specifier.

Perbedaan antara Grep, Egrep dan Fgrep

Beberapa perbedaan utama antara grep, Egrep Dan fgrep dapat disorot sebagai berikut. Untuk serangkaian contoh ini, kami mengasumsikan file yang dilakukan operasi:

Perintah Linux Grep

Perintah grep

grep atau Cetak Ekspresi Reguler Global adalah program pencarian utama pada sistem seperti unix yang dapat mencari semua jenis string pada file atau daftar file atau bahkan output dari perintah apa pun.

Disarankan Baca: 12 Contoh Praktis dari Perintah Linux Grep

Itu menggunakan Ekspresi reguler dasar Terlepas dari string normal sebagai pola pencarian. Dalam Ekspresi Reguler Basic (BRE), meta-karakter menyukai: '', '','(', ')','|','+','?' Lepaskan maknanya dan diperlakukan sebagai karakter normal dari string dan perlu diloloskan jika mereka ingin diperlakukan sebagai karakter khusus.

Disarankan Baca: 11 Advance 'Grep' perintah pada kelas karakter dan ekspresi braket

Juga, GREP menggunakan algoritma Boyer-Moore untuk mencari string atau ekspresi biasa cepat.

$ grep -c 0 '(f | g) ile' check_file $ grep -c 0 '\ (f \ | g \) ile' check_file 
Contoh Perintah Linux Grep

Seperti di sini, saat perintah dijalankan tanpa melarikan diri '(")' Dan '|' Kemudian mencari string lengkap i.e. “(F | g) ile” di file. Tetapi ketika karakter khusus melarikan diri, maka alih-alih memperlakukan mereka sebagai bagian dari string, Grep memperlakukan mereka sebagai meta-karakter dan mencari kata-kata "mengajukan" atau "Gile" di file.

Perintah egrep

Egrep atau grep -E adalah versi lain dari grep atau grep yang diperluas. Versi GREP ini efisien dan cepat dalam hal mencari pola ekspresi reguler karena memperlakukan meta-karakter apa adanya dan tidak mengganti mereka sebagai string seperti di grep, dan karenanya Anda dibebaskan dari beban melarikan diri dari mereka di grep. Itu menggunakan ERE atau set ekspresi reguler yang diperluas.

Dalam hal egrep, bahkan jika Anda tidak luput dari meta-karakter, itu akan memperlakukan mereka sebagai karakter khusus dan mengganti mereka dengan makna khusus mereka alih-alih memperlakukan mereka sebagai bagian dari string.

$ egrep -c 0 '(f | g) ile' check_file $ egrep -c 0 '\ (f \ | g \) ile' check_file 
Contoh Perintah Linux Egrep

Seperti di sini, Egrep mencari "mengajukan" string ketika meta-karakter tidak melarikan diri karena itu berarti makna karakter ini. Tapi, ketika karakter -karakter ini melarikan diri, lalu Egrep memperlakukan mereka sebagai bagian dari string dan mencari string lengkap “(F | g) ile” di file.

perintah fgrep

Fgrep atau Memperbaiki grep atau grep -f adalah versi GREP lain yang cepat mencari ketika datang untuk mencari seluruh string alih-alih ekspresi reguler karena tidak mengenali ekspresi reguler, tidak ada karakter meta. Untuk mencari string langsung, ini adalah versi GREP yang harus dipilih.

Fgrep mencari string lengkap dan bahkan tidak mengenali karakter khusus sebagai bagian dari ekspresi reguler bahkan jika lolos atau tidak melarikan diri.

$ fgrep -c 0 '(f | g) ile' check_file $ fgrep -c 0 '\ (f \ | g \) ile' check_file 
Contoh Perintah Linux Fgrep

Seperti, ketika meta-karakter tidak melarikan diri, Fgrep mencari string lengkap “(F | g) ile” dalam file, dan ketika meta-karakter diloloskan, maka perintah fgrep mencari “\ (F \ | g \) ile” Semua karakter seperti di file.

Kami sudah membahas beberapa contoh praktis dari perintah grep Anda dapat membacanya di sini, jika Anda ingin mendapatkan lebih banyak dari perintah grep di linux.

Pelajari 12 Contoh Praktis dari Perintah Linux Grep

Kesimpulan

Di atas disorot adalah perbedaan antara 'grep', 'egrep' Dan 'fgrep'. Terlepas dari perbedaan dalam himpunan ekspresi reguler yang digunakan, dan kecepatan eksekusi, parameter baris perintah tetap sama untuk ketiga versi grep dan bahkan alih -alih "egrep" atau "fgrep", "grep -e" atau "grep - F ”disarankan untuk digunakan.

Jika Anda menemukan perbedaan lain antara ketiga versi GREP ini, sebutkan di komentar Anda.