Ads 468x60px


19 September 2010

Mengenal Lebih Jauh "perintah Grep linux"


LinuxPerintah 'grep' di Linux merupakan cara yang sangat ampuh untuk mencari file. Seperti halnya beberapa perintah baris (command line) lainnya, jika kita sudah terbiasa menggunakannya maka dapat kita rasakan betapa cepat penggunaan serta keakuratannya.
Namun banyak para pengguna Linux hanya menggunakan satu atau dua pilihan saja yang terdapat dalam perintah 'grep'. Jika kita mau sedikit menelusuri lebih jauh tentang perintah 'grep' ini maka akan kita dapati betapa ampuhnya perintah 'grep'.
Dibawah ini ada beberapa contoh penggunaan perintah 'grep'. Contohnya menggunakan file calendar, di Ubuntu, Mint dan Mac sudah terinstal secara default sedangkan untuk pengguna Fedora harus diinstal terlebih dahulu.
Pencarian dasar
Perintah 'grep' mencari hal-hal sebagai berikut:
1. Setiap pilihan yang mungkin akan kita gunakan untuk menyesuaikan pencarian.
2. String (atau pola) yang kita cari.
3. Lokasi dimana kita akan mencari - baik itu berupa file atau direktori.
Contohnya kita bisa coba:
jafar@roemasa:~$ grep first /usr/share/calendar/calendar.history 
01/05    The FCC hears the first demonstration of FM radio, 1940
01/11    Milk delivered in bottles for first time, 1878
01/14    The first "Be-In" is held in Golden Gate Park, 1967
Perintah diatas kita gunakan untuk meminta 'grep' mencari semua string 'first' di file calendar.history.
Perintah 'grep' sangat sensitif sehingga perbedaan huruf besar dan kecil akan sangat berpengaruh. Bandingkan jika kita menjalankan:
jafar@roemasa:~$ grep First /usr/share/calendar/calendar.history 
01/01    First Rose Bowl; Michigan 49 - Stanford 0, 1902
01/10    First meeting of United Nations General Assembly in London, 1946
01/28    First ski tow, Woodstock VT, 1914
Jika kita ingin mencari apapun, tanpa menghiraukan huruf besar atau kecil, gunakan pilihan -i setelah perintah grep.
jafar@roemasa:~$ grep -i first /usr/share/calendar/calendar.history 
01/01    First Rose Bowl; Michigan 49 - Stanford 0, 1902
01/05    The FCC hears the first demonstration of FM radio, 1940
01/10    First meeting of United Nations General Assembly in London, 1946
Lalu bagaimana jika kita ingin mencari lebih dari satu file? Ubah path direktori dan gunakan pilihan -r sehingga 'grep' akan mencari secara keras di semua file dan subdirektori. Hasilnya seperti dibawah ini:
jafar@roemasa:~$ grep -ir first /usr/share/calendar 
/usr/share/calendar/calendar.usholiday:09/MonFirst    Labor Day in USA (1st Monday of September)
/usr/share/calendar/calendar.usholiday:11/TueFirst    Election Day in USA (1st Tuesday after 1st Monday for even years)
/usr/share/calendar/calendar.usholiday:11/SunFirst    Daylight Savings Time ends in USA; clocks move back (1st Sunday of November)
Misalkan kita ingin mencari surat atau informasi yang pernah ada di komputer yang berhubungan dengan seseorang bernama Andi Surya dan kita yakin surat atau informasi tersebut ada di direktori home, maka kita dapat cari dengan menggunakan perintah ini:
jafar@roemasa:~$ grep -r Surya /home/jafar
Kustomisasi output kita
Pilihan highlight dalam penggunaan perintah 'grep' dapat lebih mempermudah kita dalam melihat hasil pencarian:
jafar@roemasa:~$ grep -ri --color=auto war /usr/share/calendar/ 
/usr/share/calendar/de_DE/calendar.musik:03/01    Frederic Chopin in Zelazowa-Wola bei Warschau geboren, 1810
/usr/share/calendar/de_DE/calendar.geschichte: * 1800 bis zur Gegenwart; historische Ausstellung im Reichstagsgebäude
/usr/share/calendar/de_DE/calendar.geschichte:10/18    Wartburgfest der Deutschen Burschenschaften, 1817
Tampilan aslinya, kata 'war' akan terlihat merah dan untuk path direktori di depan/usr/share/calendar/de_DE/calendar.musik:03/01 berwarna jingga muda.
Namun dengan perintah di atas malah akan ikut tampil juga baris 'Rod Stewart' padahal kita mungkin tidak menginginkannya. Jika kita tidak menginginkan itu dan hanya ingin melihat dimana saja kata-kata 'war' dalam bentuk aslinya, kita dapat menggunakan perintah:
jafar@roemasa:~$ grep -riwc war /usr/share/calendar 
/usr/share/calendar/de_AT/calendar.feiertag:0
/usr/share/calendar/de_DE/calendar.musik:0
/usr/share/calendar/de_DE/calendar.kirche:0
Kalau kita ingin mencari lebih dari satu kata, maka gunakan perintah seperti berikut:
jafar@roemasa:~$ grep -ri 'civil war' /usr/share/calendar 
/usr/share/calendar/calendar.history:04/12    Confederate troops fire first shots of Civil War at Ft Sumter, 1861
/usr/share/calendar/calendar.history:05/22    US Civil War ends, 1865
Yang terakhir adalah jika kita ingin menyimpan hasil pencarian kita ke sebuah file, gunakan perintah berikut:
jafar@roemasa:~$ grep -riw first /usr/share/calendar > /home/jafar/cari.txt
Ingin tahu lebih jauh tentang perintah 'grep'? Silahkan buka halaman manualnya untuk membaca-baca:
jafar@roemasa:~$ man grep
Tekan 'q' untuk keluar dari mode membaca manual.
Atau untuk lebih jelas juga bisa gunakan:
jafar@roemasa:~$ grep --help