Apa itu grep

GREP adalah sebuah perintah di Linux yang biasanya digunakan oleh IT Engineer untuk tugas sehari-harinya. Bisa digunakan oleh seorang Software Engineer, Network Engineer, Data Engineer, Security Engineer dll. Atau siapapun yang membutuhkan pencarian atau penggantian kata dalam file atau proses di Linux.

Misalnya pencarian kata di dalam .log file, atau pencarian proses , atau memfilter hasil perintah Linux sebelumnya, dll.

Contoh

>>> cat activity.log | grep "activity 1"
>>> ps -ef | grep java

  1. Perintah pertama menfilter/menemukan posisi dalam file activity.log yang didalamnya terdapat kata ‘activity 1’.
  2. Perintah kedua menfilter/menemukan proses/program java apa saja yang sedang running saat ini.

GREP ini merupakan salah satu implementasi dari mesin Regular Expression. Singkatan dari grep ini sendiri adalah Global Regular Expression Printed.

Asal mula GREP

Asalnya dari perintah g/re/p di text editor ed editor di Unix (sebelum Linux berkembang). Ketika perintah ini dijalankan di ed text editor, maka akan mencari secara global text/kata yang ada di reguler expression nya dan mem-print baris yang memiliki kata tersebut.

Ed editor ini di buat oleh Kenneth Lane Thompson pada tahun 1969, yang juga developer dari Unix, dan juga mendesain mesin Regular Expression di Unix, juga mendevelop skema encoding UTF-8, dan terakhir sebagai salah satu pembuat bahasa pemrograman Go di Google.

Perkembangannya

Perintah grep juga mengalami perkembangan sesuai perkembangan dialek dari Regular Expressionnya.

Pada awalnya , hanya mengenal dialect BRE (Base Regular Expression) yang tidak mengenal \d, \S, \s dan beberapa notasi kelas karakter.

Akan tetapi versi grep yang terkini, sudah memiliki pilihan apakah akan memakai dialek Basic, Extended, atau PCRE (Perl Compatible Regular Expression). Link Regex Dialect

Experiment

Kalau kita coba execute grep –help, maka akan muncul

$ grep --help
Usage: grep [OPTION]... PATTERNS [FILE]...
Search for PATTERNS in each FILE.
Example: grep -i 'hello world' menu.h main.c
PATTERNS can contain multiple patterns separated by newlines.

Pattern selection and interpretation:
  -E, --extended-regexp     PATTERNS are extended regular expressions
  -F, --fixed-strings       PATTERNS are strings
  -G, --basic-regexp        PATTERNS are basic regular expressions
  -P, --perl-regexp         PATTERNS are Perl regular expressions
  -e, --regexp=PATTERNS     use PATTERNS for matching
  -f, --file=FILE           take PATTERNS from FILE
  -i, --ignore-case         ignore case distinctions in patterns and data
      --no-ignore-case      do not ignore case distinctions (default)
  -w, --word-regexp         match only whole words
  -x, --line-regexp         match only whole lines
  -z, --null-data           a data line ends in 0 byte, not newline
  1. grep -G untuk menggunakan Basic Regex.
  2. grep -E untuk menggunakan Extended Regex.
  3. grep -P untuk menggunakan Perl Compatible Regular Expression

mengenai dialek Regex bisa dilihat di Regex Dialect