Dalam tutorial ini, kita akan belajar tentang "grep" memerintah. Grep adalah singkatan dari G r lo global e biasa ekspresi p mencetak. Sesuai dengan namanya, Grep digunakan untuk mencari file teks dengan ekspresi reguler (singkatnya regex ). Ini mencetak garis yang cocok dengan pola yang diberikan dalam file teks. Jika tidak ada file yang diberikan, grep akan secara rekursif mencari pola yang diberikan dalam file di direktori saat ini. Grep memiliki dua varian yaitu egrep dan fgrep . Varian ini tidak digunakan lagi tetapi disediakan untuk kompatibilitas mundur. Alih-alih menggunakan "grep -E" dan "grep -F", Anda dapat menggunakan masing-masing "egrp" dan "fgrep". Tanpa basa-basi lagi, mari kita mulai.
Contoh Perintah Grep
Saya memiliki file bernama file.txt dengan beberapa kata acak. Mari kita lihat file.txt:
$ cat file.txt ostechnix Ostechnix o$technix linux linus unix technology hello world HELLO world
Untuk memulai pencarian, cukup ketik grep diikuti dengan apa yang Anda cari dan dari mana Anda mencari. Misalnya, saya akan mencari string "nix" di file.txt. Untuk melakukannya, saya menjalankan:
$ grep nix file.txt
Contoh keluaran:
ostechnix Ostechnix o$technix unix
Seperti yang Anda lihat pada output di atas, kami mendapat dua kata yang berisi pola yang cocok "nix". Jika string pencarian memiliki dua kata, sebutkan dalam tanda kutip tunggal seperti di bawah ini.
$ grep 'hello world' file.txt hello world
Anda juga dapat menggunakan -n flag untuk menunjukkan nomor baris dalam output:
$ grep -n nix file.txt
Contoh keluaran:
1:ostechnix 2:Ostechnix 3:o$technix 6:unix
Ini bisa berguna saat Anda bekerja dengan kode yang sangat panjang.
Harap perhatikan bahwa grep peka huruf besar/kecil . Misalnya, saat Anda menelusuri "os" , itu tidak akan menampilkan baris yang berisi huruf besar yaitu Os.
Periksa contoh berikut.
$ grep os file.txt ostechnix
Tapi, saya punya kata lain bernama "Ostechnix" di file.txt, tapi grep tidak mencantumkannya.
Namun, jika Anda ingin mengabaikan peka huruf besar/kecil, Anda dapat menggunakan "-i" tandai seperti di bawah ini.
$ grep -i os file.txt ostechnix Ostechn1x
$ grep -i 'hello world' file.txt hello world HELLO world
Sekarang, grep tidak peduli dengan huruf besarnya dan kami mendapatkan kata-kata yang berisi huruf besar dan huruf kecil di hasilnya.
Kami juga dapat menyalurkan output dari perintah ke grep. Lihat contoh berikut.
$ cat file.txt | grep os ostechnix
Sekarang lihat apa yang kita punya. Output dari file.txt disalurkan ke grep dan kata-kata yang mengandung huruf "os" di file.txt telah ditampilkan.
Kami juga dapat menggunakan beberapa karakter khusus atau ekspresi reguler di grep.
- ^ - cari di awal baris.
- $ - cari di akhir baris.
- . - Cari karakter apa saja.
Mari saya tunjukkan sebuah contoh, sehingga Anda dapat memahami di mana dan bagaimana menggunakan karakter khusus tersebut.
Anda sudah tahu, kita bisa mencari kata-kata yang mengandung string "tech" seperti di bawah ini.
$ grep tech file.txt ostechnix Ostechnix o$technix technology
Tetapi bagaimana jika Anda hanya ingin mencari baris yang hanya dimulai dengan kata "tech". Anda tidak ingin menampilkan semua kata yang berisi string, tetapi hanya kata-kata yang memiliki string "tech" di awal. Hal ini juga mungkin. Di sinilah karakter khusus berguna.
Untuk mencari kata yang cocok dengan pola "tech" di awal baris dalam file, jalankan:
$ grep ^tech file.txt technology
Demikian pula, kita dapat menelusuri kata-kata yang diakhiri dengan huruf tertentu, misalnya "x" , seperti di bawah ini.
$ grep x$ file.txt ostechnix Ostechnix o$technix linux unix
Selain itu, Anda dapat menemukan kata-kata yang mengandung karakter apa pun menggunakan . (titik).
Misalnya, mari kita telusuri kata apa pun yang memiliki "n" dalam file.
$ grep .n file.txt ostechnix Ostechnix o$technix linux linus unix technology
Anda sekarang harus memiliki pemahaman dasar tentang penggunaan grep. Mari kita lanjutkan dan pelajari dua varian lainnya, yaitu egrep dan fgrep .
Contoh perintah Egrep
egrep singkatan dari e xtended grep . Ini mirip dengan "grep -E" memerintah. Itu akan melakukan semua hal yang akan dilakukan grep. Namun, Ini menyediakan beberapa fungsi tambahan, seperti menggunakan regex yang rumit, daripada perintah grep biasa yang dilakukan di luar kotak.
Misalnya, kami dapat menelusuri kata apa pun yang dimulai dengan "l" atau "o" .
Ingat kita menggunakan simbol caret (^) untuk mencari kata di awal baris. Oleh karena itu, perintah kami untuk kueri di atas adalah:
$ egrep '^(l|o)' file.txt ostechnix o$technix linux linus
Lihat? Kami memiliki semua kata yang dimulai dengan "l" atau "o". Harap dicatat bahwa perintah grep normal tidak dapat melakukan ini.
Demikian pula, Kami dapat mencari baris yang dimulai dengan rentang karakter apa pun antara "l" hingga "u". Artinya, kita akan mendapatkan garis yang dimulai dengan l, m, n, o, p, q, r, s, t, dan u. Segala sesuatu yang lain akan dihilangkan dari hasil.
$ egrep '^[l-u]' file.txt ostechnix o$technix linux linus unix technology
Harap perhatikan bahwa saya telah menggunakan kurung siku ([) untuk mencari rentang kata. Karena grep peka huruf besar/kecil, grep tidak akan menemukan baris yang dimulai dengan huruf besar dalam rentang yang diberikan.
Untuk menampilkan semua baris yang dimulai dengan huruf besar dan kecil, kami menggunakan:
$ egrep '^[l-u]|[L-U]' file.txt
Atau,
$ egrep '^([l-u]|[L-U])' file.txt
Contoh keluaran:
ostechnix Ostechnix o$technix linux linus unix technology HELLO world
Lihat? Sekarang kita sudah mendapatkan kata-kata yang dimulai dengan rentang karakter "l" hingga "u" (baik huruf besar atau kecil).
Contoh perintah Fgrep
fgrep singkatan dari f ast grep . Ini mirip dengan "grep -F" . fgrep tidak dapat mengenali ekspresi reguler atau karakter khusus. fgrep dapat digunakan di mana Anda ingin ekspresi reguler dievaluasi.
Misalnya, kami menggunakan perintah berikut untuk menemukan kata yang diakhiri dengan "x" .
$ grep x$ file.txt ostechnix Ostechnix o$technix linux unix
Sekarang jalankan perintah yang sama dengan fgrep.
$ fgrep x$ file.txt
Itu tidak akan menampilkan apa pun, karena tidak dapat mengevaluasi karakter khusus.
Sekarang mari kita lihat contoh lain. Untuk mencari kata yang cocok dengan string "o$" dengan perintah grep, kita lakukan:
$ grep o$ file.txt
Tapi, kami tidak mendapatkan apa-apa, mengapa? Karena, sesuai perintah di atas, kita menggunakan simbol dollar($) untuk mencari kata yang berakhiran "o". Karena tidak ada karakter yang diakhiri dengan "o" di file.txt, kami tidak mendapatkan apa-apa.
Sekarang, jalankan perintah yang sama dengan fgrep.
$ fgrep o$ file.txt o$technix
Lihat? Di sinilah kita menggunakan perintah fgrep. Itu hanya mengabaikan simbol dolar (karakter khusus, tentu saja) dan menampilkan kata yang berisi string "o$".
Untuk detail lebih lanjut tentang grep, ketik:
$ grep --help
Ini akan memberikan semua opsi yang memungkinkan. Atau, lihat halaman manual.
$ man grep
Bacaan yang disarankan:
- Belajar Menggunakan Halaman Manual Secara Efisien
Etimologi grep
Grep ditulis dalam semalam oleh Ken Thompson , orang yang sama yang menulis Unix. Tapi mengapa dan bagaimana itu mendapatkan namanya? Profesor Brian Kernighan menjelaskan etimologi grep dalam video ini.
Dan, itu saja. Grep adalah salah satu perintah penting yang harus Anda pelajari secara menyeluruh.
Sekarang Anda tahu apa itu grep dan bagaimana menggunakannya untuk mencari file teks dengan pola yang cocok di GNU/Linux. Anda juga belajar bagaimana Grep mendapatkan namanya. Semoga bermanfaat.