Selasa, 15 Juli 2008

Grep dan egrep, yang baru dan yang lama

Iseng-iseng bermain dengan grep dan egrep. Ada beberapa tutorial yang hanya mempergunakan egrep. Ini membuat saya penasaran, apa hubungan sebenarnya dengan grep (grep -E)?
Untuk menjawabnya langkah-langkah sederhana tapi sistematis bisa dilakukan, misalnya:

$ whatis grep
grep (1) - print lines matching a pattern
$ whatis egrep
egrep (1) - print lines matching a pattern


$ whereis grep
grep: /bin/grep /usr/share/man/man1/grep.1.gz
$ whereis egrep
egrep: /bin/egrep /usr/share/man/man1/egrep.1.gz


$ type grep
grep is /bin/grep
$ type egrep
egrep is /bin/egrep

$ ls -lF /usr/share/man/man1/grep.1.gz
-rw-r--r-- 1 root root 2007-10-24 04:58 /usr/share/man/man1/grep.1.gz
$ ls -lF /usr/share/man/man1/egrep.1.gz
lrwxrwxrwx 1 root root 2008-06-13 14:17 /usr/share/man/man1/egrep.1.gz -> grep.1.gz

Karena itu jika diberi perintah $man egrep maka yang akan tampil adalah manual dari grep.

Setelah RTFM sedikit, dari manual grep didapat keterangan:
DESCRIPTION
...
In addition, three variant programs egrep, fgrep and rgrep are available. egrep is
the same as grep -E. fgrep is the same as grep -F. rgrep is the same as grep -r.
Direct invocation as either egrep or fgrep is deprecated, but is provided to allow
historical applications that rely on them to run unmodified.
...

Oh, jadi egrep dan grep -E sama saja, sama-sama untuk ERE (extended regular expression), hanya saja egrep sudah berstatus deprecated alias sudah usang. Tetapi egrep masih disertakan agar aplikasi yang lama dapat dijalankan tanpa perubahan. Untuk penggunaan yang baru (bukan script warisan zaman lawas,) grep -E lebih aman digunakan karena lebih pasti tersedia.

Tidak ada komentar:

Posting Komentar