Perintah grep di Linux/Unix dengan Contoh
Perintah ‘grep’ adalah singkatan dari “global regular expression print”. Perintah grep menyaring konten file yang membuat pencarian kita lebih mudah.
Ini adalah utilitas baris perintah untuk mencari grup data teks biasa untuk baris yang sesuai dengan ekspresi reguler. Nama “grep” berasal dari perintah, yaitu, ed, yang memiliki efek yang sama. Awalnya, grep dirancang untuk sistem operasi Unix, tetapi kemudian tersedia untuk setiap sistem mirip Unix dan beberapa lainnya seperti OS 9.
Filter grep menemukan file untuk pola karakter tertentu dan menunjukkan setiap baris yang menyertakan pola tersebut. Karakter harus berada dalam tanda kutip jika mereka muncul dalam parameter pola dengan arti khusus untuk shell. Biasanya, kita harus menyertakan seluruh pola dalam satu tanda kutip jika parameter pola bukan string umum.
Dalam ekspresi seperti [a-z], tanda minus (-) menjelaskan rentang berdasarkan urutan kolasi saat ini. Urutan kolasi dapat menentukan kelas ekuivalen dalam rentang karakter untuk digunakan. Perintah grep mengasumsikan stdin ketika tidak ada file yang disebutkan.
Polanya disebut ekspresi reguler yang ditemukan di dalam file. Polanya adalah ekspresi reguler terbatas dalam format perintah egrep atau ed. Perintah grep menerapkan algoritma non-deterministik yang solid. Ini berguna saat kita perlu menyaring file log besar.
Sejarah Singkat grep
Sebelum diberi nama, grep adalah utilitas rahasia yang ditentukan oleh Ken Thompson untuk menemukan file untuk beberapa pola. Tidak mengetahui keberadaannya, Doug Mcllroy meminta Thompson untuk menentukan fungsi semacam itu. Menjawab bahwa dia akan memikirkannya semalam. Thompson membuat perbaikan dan memperbaiki kesalahan selama sekitar satu jam pada programnya yang dikenal sebagai “s” (atau search). Dia mempresentasikan fungsi tersebut ke Mcllroy keesokan harinya, yang mengatakan itu persis seperti yang diinginkannya. Kisah Thompson mungkin menjelaskan keyakinan bahwa perintah grep ditentukan semalam.
Thompson menetapkan versi awal dalam bahasa rakitan PDP-11 untuk mendukung Lee E. McMohan memeriksa teks Federalist Papers untuk menentukan penulis masing-masing makalah. Editor teks ed memiliki dukungan untuk ekspresi reguler tetapi tidak dapat digunakan pada teks besar seperti itu; Thompson menyalin kode itu ke alat mandiri. Dia memilih nama tersebut karena dalam ed, perintah grep akan mencetak setiap baris yang sesuai dengan pola yang dijelaskan. Pertama, grep ditambahkan dalam Unix Versi 4, dengan mengatakan bahwa “itu umumnya disebut sebagai alat perangkat lunak prototipikal”, Mcllroy menyetujui grep dengan “menanamkan secara tak terhapuskan” filosofi alat Thompson di Unix.
Implementasi grep
Berbagai implementasi grep hadir di beberapa lingkungan pengembangan perangkat lunak dan sistem operasi. Versi awal termasuk fgrep dan egrep, yang diperkenalkan dalam versi 7 Unix. Versi egrep mendukung sintaks untuk ekspresi reguler yang diperluas yang disertakan oleh Alfred Aho setelah implementasi ekspresi reguler asli dari Ken Thompson. Versi fgrep menemukan daftar string tetap dengan algoritma pencocokan string Aho-Corasick. Biner versi ini tersedia di sistem modern, terhubung ke grep atau memanggil grep sebagai skrip shell menggunakan flag yang benar ditambahkan saat umumnya digunakan pada sistem POSIX.
Perintah lain menyertakan kata “grep” untuk menunjukkan bahwa mereka adalah alat pencari, biasanya yang bergantung pada kecocokan ekspresi reguler. Misalnya, utilitas “pgrep” menampilkan proses yang judulnya sama dengan ekspresi reguler yang diberikan.
Grep adalah nama fungsi bawaan yang mencari elemen dalam daftar yang memenuhi sifat tertentu dalam bahasa pemrograman Perl. Biasanya, fungsi tingkat tinggi ini disebut “filter” atau “where” dalam bahasa lain. Perintah “pcregrep” adalah implementasi grep yang menggunakan sintaks untuk ekspresi reguler Perl. Fungsionalitas yang sama dapat ditambahkan ke versi GNU grep menggunakan flag -P. Juga, port grep (misalnya, di GnuWin32 dan Cygwin) dijalankan pada Microsoft Windows. Beberapa versi Windows menyediakan perintah findstr atau qgrep yang setara. Selain itu, perintah grep adalah bagian dari MSX-DOS2 Tools dari ASCII untuk versi 2 dari MSX-DOS. Perintah fgrep, egrep, dan grep telah dikirimkan ke OS IBM i. Perangkat lunak Adobe InDesign memiliki fungsi GREP (sejak edisi CS3) dalam dialog kotak tab “GREP” find/change dan ditentukan menggunakan CS4 dalam “GREP styles” gaya paragraf.
Cara menginstal grep di Linux
Grep sudah terinstal sebelumnya di hampir setiap distribusi Linux. Namun, jika hilang dari sistem kita, kita dapat menginstalnya dengan perintah berikut di jendela terminal:
arduinoSalin kode$ sudo apt-get install grep
grep dengan pipe
Perintah ‘grep’ biasanya digunakan dengan pipe (|).
Sintaks:
bashSalin kodecommand | grep <kataCari>
Contoh:
bashSalin kodecat marks.txt | grep 9
Lihat snapshot di atas, perintah grep menyaring semua data yang mengandung ‘9’.
grep tanpa pipe
Dapat digunakan tanpa pipe juga.
Sintaks:
phpSalin kodegrep <kataCari> <namaFile>
Contoh:
cssSalin kodegrep 9 marks.txt
Lihat snapshot di atas, perintah grep melakukan pekerjaan yang sama seperti contoh sebelumnya tetapi tanpa pipe.
Opsi grep
grep -v
: Perintah ‘grep -v’ menampilkan baris yang tidak cocok dengan kata yang ditentukan.- Sintaks:phpSalin kode
grep -v <kataCari> <namaFile>
- Contoh:cssSalin kode
grep -v 9 marks.txt
- Lihat snapshot di atas, perintah “grep -v 9 marks.txt” menampilkan baris yang tidak mengandung kata cari ‘9’.
- Sintaks:phpSalin kode
grep -i
: Perintah ‘grep -i’ menyaring output secara tidak sensitif terhadap huruf besar/kecil.- Sintaks:phpSalin kode
grep -i <kataCari> <namaFile>
- Contoh:cssSalin kode
grep -i red exm.txt
- Lihat snapshot di atas, perintah “grep -i red exm.txt” menampilkan semua baris yang mengandung ‘red’ baik dalam huruf besar maupun kecil.
- Sintaks:phpSalin kode
grep -A
,grep -B
,grep -C
:grep -A
digunakan untuk menampilkan baris setelah hasil.grep -B
digunakan untuk menampilkan baris sebelum hasil.grep -C
digunakan untuk menampilkan baris sebelum dan sesudah hasil.- Kita bisa menggunakan (A1, A2, A3…..)(B1, B2, B3….)(C1, C2, C3….) untuk menampilkan beberapa baris.
- Sintaks:phpSalin kode
grep -A<nomorBaris> <kataCari> <namaFile> grep -B<nomorBaris> <kataCari> <namaFile> grep -C<nomorBaris> <kataCari> <namaFile>
- Contoh:perlSalin kode
grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt
- Lihat snapshot di atas, perintah “grep -A1 yellow exm.txt” menampilkan baris yang dicari dengan satu baris berikutnya, perintah “grep -B1 yellow exm.txt” menampilkan baris yang dicari dengan satu baris sebelumnya, dan perintah “grep -C1 yellow exm.txt” menampilkan baris yang dicari dengan satu baris sebelumnya dan berikutnya
ref:[1]