Apa perbezaan antara Grep, Egrep dan Fgrep di Linux?
- 4393
- 45
- Chris Little I
Salah satu alat carian terkenal pada sistem seperti Unix yang boleh digunakan untuk mencari apa-apa sama ada ia menjadi fail, atau baris atau baris berbilang dalam fail adalah utiliti grep. Ia sangat luas dalam fungsi yang boleh dikaitkan dengan sejumlah besar pilihan yang disokongnya seperti: mencari menggunakan corak rentet.
Perbezaan antara grep, egrep dan fgrep di linuxOleh kerana fungsi yang berbeza -beza, ia mempunyai banyak varian termasuk grep, Egrep (Grep dilanjutkan), fgrep (Grep tetap), pgrep (Proses grep), rgrep (Grep rekursif) dan lain-lain. Tetapi varian ini mempunyai perbezaan kecil untuk asal grep yang telah menjadikan mereka popular dan digunakan oleh pelbagai pengaturcara Linux untuk tugas tertentu.
Perkara utama yang masih perlu disiasat ialah perbezaan antara tiga varian utama i.e. 'Grep', 'Egrep' dan 'fgrep' grep yang menjadikan pengguna Linux memilih satu atau versi lain mengikut keperluan.
Beberapa meta-akhbar grep khas
+
- Bersamaan dengan satu atau lebih kejadian watak sebelumnya.?
- Ini menandakan hampir 1 pengulangan watak sebelumnya. Seperti:a?
Akan sepadan 'a' atau 'aa'.(
- Permulaan ungkapan penggantian.)
- Akhir ungkapan penggantian.|
- Memadankan salah satu ungkapan yang dipisahkan oleh'|'
. Seperti:"(A | b) cde"
akan sepadan dengan sama ada 'Abcde' atau 'bbcde'.- Meta-watak ini menunjukkan permulaan julat. Seperti:
"A 2"
perlawanan "AA" dalam fail i.e. A 2 kali.- Meta-watak ini menunjukkan akhir penipisan julat.
Perbezaan antara grep, egrep dan fgrep
Beberapa perbezaan utama antara grep, Egrep dan fgrep boleh diserlahkan seperti berikut. Untuk contoh -contoh ini, kami menganggap fail di mana operasi sedang dilakukan:
Perintah Linux GrepPerintah grep
grep atau Cetakan ungkapan biasa global adalah program carian utama pada sistem seperti Unix yang boleh mencari jenis rentetan pada sebarang fail atau senarai fail atau output dari mana-mana arahan.
Cadangan Baca: 12 Contoh Praktikal Perintah Linux Grep
Ia menggunakan Ekspresi biasa asas selain dari rentetan biasa sebagai corak carian. Dalam Ungkapan Biasa Asas (BRE), meta-aksara seperti: '', ''
,'(', ')'
,'|'
,'+'
,'?'
longgar maknanya dan dianggap sebagai watak biasa rentetan dan perlu dilepaskan jika mereka dianggap sebagai watak khas.
Cadangan Baca: 11 Advance 'Grep' Perintah pada Kelas Karakter dan Ekspresi Kurungan
Juga, Grep menggunakan algoritma Boyer-Moore untuk mencari rentetan atau ungkapan biasa yang cepat.
$ grep -c 0 '(f | g) ile' check_file $ grep -c 0 '\ (f \ | g \) ile' check_fileContoh Perintah Linux Grep
Seperti di sini, ketika arahan dijalankan tanpa melarikan diri '(")'
dan '|'
Kemudian ia mencari rentetan lengkap i.e. "(F | g) ile"
dalam fail. Tetapi apabila watak-watak khas melarikan diri, maka bukannya merawatnya sebagai sebahagian daripada rentetan, Grep memperlakukan mereka sebagai meta-karakter dan mencari kata-kata "Fail"
atau "Gile"
dalam fail.
Perintah Egrep
Egrep atau grep -E adalah versi grep lain atau grep lanjutan. Versi grep ini adalah cekap dan pantas ketika mencari corak ekspresi biasa kerana ia merawat meta-karakter seperti itu dan tidak menggantikannya sebagai rentetan seperti di grep, dan oleh itu anda dibebaskan dari beban melarikan diri mereka sebagai di grep. Ia menggunakan ERE atau set ekspresi biasa yang dilanjutkan.
Sekiranya EGREP, walaupun anda tidak melarikan diri dari meta-karakter, ia akan memperlakukan mereka sebagai watak khas dan menggantikannya untuk makna istimewa mereka dan bukannya merawatnya sebagai sebahagian daripada rentetan.
$ egrep -c 0 '(f | g) ile' check_file $ egrep -c 0 '\ (f \ | g \) ile' check_fileContoh perintah Linux Egrep
Seperti di sini, Egrep dicari "Fail"
rentetan ketika meta-aksara tidak melarikan diri seperti maksudnya dengan makna watak-watak ini. Tetapi, apabila watak -watak ini melarikan diri, maka Egrep merawatnya sebagai sebahagian daripada rentetan dan mencari rentetan lengkap "(F | g) ile"
dalam fail.
perintah fgrep
Fgrep atau Grep tetap atau grep -f adalah satu lagi versi grep yang cepat mencari ketika datang untuk mencari seluruh rentetan dan bukannya ungkapan biasa kerana ia tidak mengenali ungkapan biasa, sama ada mana. Untuk mencari rentetan langsung, ini adalah versi grep yang harus dipilih.
Carian fgrep untuk rentetan lengkap dan bahkan tidak mengenali aksara khas sebagai sebahagian daripada ungkapan biasa walaupun melarikan diri atau tidak melarikan diri.
$ fgrep -c 0 '(f | g) ile' check_file $ fgrep -c 0 '\ (f \ | g \) ile' check_fileContoh Perintah Linux Fgrep
Suka, ketika meta-karakter tidak melarikan diri, fgrep mencari rentetan lengkap "(F | g) ile"
dalam fail, dan apabila meta-aksara melarikan diri, maka perintah fgrep dicari "\ (F \ | g \) ile"
Semua watak seperti dalam fail.
Kami sudah meliputi beberapa contoh praktikal perintah grep, anda boleh membacanya di sini, jika anda ingin mendapatkan lebih banyak perintah grep di linux.
Ketahui 12 Contoh Praktikal Perintah Linux Grep
Kesimpulan
Di atas yang diserlahkan adalah perbezaan antara 'Grep', 'Egrep' dan 'fgrep'. Selain daripada perbezaan dalam set ekspresi biasa yang digunakan, dan kelajuan pelaksanaan, parameter baris perintah tetap sama untuk semua tiga versi grep dan bahkan bukan "egrep" atau "fgrep", "grep -e" atau "grep - F "disyorkan untuk digunakan.
Sekiranya anda menemui perbezaan lain antara tiga versi grep ini, nyatakannya dalam komen anda.
- « Cara Memasang dan Konfigurasi Lemp pada Debian 8 (Jessie)
- 11 Advanced Linux 'Grep' Perintah pada Kelas Karakter dan Ekspresi Kurungan »