Kapan harus menggunakan egrep, bukan grep?

8

Saya sedang mempersiapkan penilaian terminal Linux sekarang, saya mencoba ke Google dan menemukan sebagian besar sumber daya mengacu pada "grep" dasar daripada "egrep" yang lebih kuat - yah, setidaknya itulah yang dikatakan profesor dalam perkuliahan.

Saya selalu bekerja dengan sampel kecil sehingga penyesuaian kinerja adalah hal yang terlalu jauh.

Jadi pada dasarnya saya ingin tahu apakah ada area di mana saya harus beralih ke egrep untuk melakukannya dengan cara yang lebih baik? Apakah aman untuk bekerja dengan "grep" dasar seperti untuk saat ini? apakah akan ada risiko potensial?

Maaf tentang pengetahuan saya yang terbatas tentang perintah shell Linux, halaman manual tampak seperti labirin bagi saya dan jujur ​​saya belum menaruh banyak waktu untuk memahami semua fitur yang disediakan oleh kedua perintah.

Michael Mao
sumber

Jawaban:

10

egrep = grep -E

Dari http://www.opengroup.org/onlinepubs/007908799/xcu/grep.html

"Cocokkan dengan persamaan reguler yang diperluas. Perlakukan setiap pola yang ditentukan sebagai ERE, seperti yang dijelaskan dalam spesifikasi XBD, Ekspresi Reguler Diperpanjang. Jika ada keseluruhan pola ERE yang cocok dengan jalur input, jalur akan dicocokkan. ERE nol cocok dengan setiap baris."

Jadi, dengan egrep bisa Anda gunakan +, ?, | and ().

Ben
sumber
@omfgroflmao: apakah itu bedanya? baik, sekarang saya merasa nyaman untuk hanya fokus pada tutorial "grep" tanpa khawatir tentang perintah "egrep" :) Terima kasih atas tip Anda!
1
Apakah Anda menyebutnya egrepatau grep -E, ekspresi reguler yang diperluas pada umumnya membuat pola yang kompleks menjadi lebih pendek dan karenanya lebih mudah dibaca dengan menghapus banyak ``. Ini bukan tentang kinerja, tetapi cara yang lebih baik dalam arti tertentu.
Cascabel
5

egrep sudah usang. Gunakan grep -E. Catatan yang grepmenemukan pola string untuk Anda. Jika Anda ingin melakukan sesuatu pada string Anda setelah menemukannya, maka Anda harus menyalurkannya ke alat pengolah string seperti awk(atau shell). Alat yang juga harus Anda perhatikan adalah awk, seperti awkmenemukan string untuk Anda juga grepdan melakukan pemrosesan untuk Anda jika Anda membutuhkannya. Ia memiliki semua hal yang dilakukan grep / sed / etc dalam satu alat praktis.

pengguna31894
sumber
@ ghostdog74: ahhh, jadi egrep disarankan untuk tidak digunakan ... Saya pikir itu adalah pengganti grep ... Terima kasih atas tip Anda!
2
Sebagai catatan, pada banyak mesin, termasuk saya, egrep adalah tautan ke grep. Artinya, mereka sebenarnya perintah yang persis sama, tetapi berperilaku berbeda tergantung pada bagaimana Anda memanggil mereka.
MJB