Contoh Penggunaan Of Linux grep Command

pengantar

Perintah grep Linux digunakan sebagai metode untuk menyaring input.

GREP adalah singkatan dari Global Regular Expression Printer dan oleh karena itu untuk menggunakannya secara efektif, Anda harus memiliki pengetahuan tentang ekspresi reguler.

Dalam artikel ini, saya akan menunjukkan kepada Anda sejumlah contoh yang akan membantu Anda memahami perintah grep.

01 09

Cara Mencari String Dalam File Menggunakan GREP

Perintah grep Linux.

Bayangkan Anda memiliki file teks yang disebut buku dengan judul buku anak-anak berikut ini:

Untuk menemukan semua buku dengan kata "The" di judul, Anda akan menggunakan sintaks berikut:

grep Buku-buku

Hasil berikut akan dikembalikan:

Dalam setiap kasus, kata "The" akan disorot.

Perhatikan bahwa pencarian bersifat case sensitive jadi jika salah satu judul memiliki "the" daripada "The" maka itu tidak akan dikembalikan.

Untuk mengabaikan kasus, Anda dapat menambahkan switch berikut:

grep buku-buku - kasus asing

Anda juga dapat menggunakan tombol -i sebagai berikut:

grep -i buku-buku

02 09

Cari String Dalam Sebuah File Menggunakan Wildcard

Perintah grep sangat kuat. Anda dapat menggunakan banyak teknik pencocokan pola untuk memfilter hasil.

Dalam contoh ini, saya akan menunjukkan cara mencari string dalam file menggunakan wildcard .

Bayangkan Anda memiliki tempat yang disebut file dengan nama tempat Skotlandia berikut:

aberdeen

aberystwyth

aberlour

inverurie

ketidaksamaan

newburgh

rusa baru

galangan baru

glasgow

edinburgh

Jika Anda ingin menemukan semua tempat dengan inver dalam nama, gunakan sintaks berikut:

grep inver * places

Tanda bintang (*) wildcard mewakili 0 atau banyak. Oleh karena itu jika Anda memiliki tempat yang disebut inver atau tempat yang disebut inverness maka keduanya akan dikembalikan.

Wildcard lain yang dapat Anda gunakan adalah periode (.). Anda dapat menggunakan ini untuk mencocokkan satu huruf.

grep inver.r places

Perintah di atas akan menemukan tempat yang disebut inverurie dan inverary tetapi tidak menemukan invereerie karena hanya ada satu wildcard antara dua r sebagai dilambangkan dengan periode tunggal.

Wildcard periode berguna tetapi dapat menyebabkan masalah jika Anda memiliki satu sebagai bagian dari teks yang Anda cari.

Misalnya lihat daftar nama domain ini

Untuk menemukan semua about.com Anda bisa mencari menggunakan sintaks berikut:

grep * about * nama domain

Perintah di atas akan jatuh jika daftar tersebut berisi nama berikut di dalamnya:

Anda bisa, oleh karena itu, coba sintaks berikut:

grep * about.com domainnames

Ini akan berfungsi ok kecuali ada domain dengan nama berikut:

aboutycom.com

Untuk benar-benar mencari istilah about.com, Anda harus menghindari titik tersebut sebagai berikut:

grep * about \ .com domainnames

Wildcard terakhir untuk menunjukkan Anda adalah tanda tanya yang mewakili nol atau satu karakter.

Sebagai contoh:

grep? ber placenames

Perintah di atas akan mengembalikan aberdeen, aberystwyth atau bahkan berwick.

03 09

Mencari String Pada Awal dan Akhir Baris Menggunakan grep

Simbol karat (^) dan dolar ($) memungkinkan Anda mencari pola di awal dan akhir baris.

Bayangkan Anda memiliki file bernama sepakbola dengan nama tim berikut:

Jika Anda ingin menemukan semua tim yang dimulai dengan Manchester Anda akan menggunakan sintaks berikut:

grep ^ Manchester teams

Perintah di atas akan mengembalikan Manchester City dan Manchester United tetapi tidak FC United Of Manchester.

Atau Anda dapat menemukan semua tim yang berakhir dengan United menggunakan sintaks berikut:

grep United $ teams

Perintah di atas akan mengembalikan Manchester United dan Newcastle United tetapi tidak FC United Of Manchester.

04 09

Menghitung Jumlah Pertandingan Menggunakan grep

Jika Anda tidak ingin mengembalikan baris aktual yang cocok dengan pola menggunakan grep tetapi Anda hanya ingin tahu berapa banyak Anda dapat menggunakan sintaks berikut:

grep -c pattern inputfile

Jika pola dicocokkan dua kali maka angka 2 akan dikembalikan.

05 09

Menemukan Semua Ketentuan yang Tidak Cocok menggunakan grep

Bayangkan Anda memiliki daftar nama tempat dengan negara-negara yang terdaftar sebagai berikut:

Anda mungkin telah memperhatikan bahwa colwyn bay tidak memiliki negara yang terkait dengannya.

Untuk mencari semua tempat dengan negara Anda bisa menggunakan sintaks berikut:

grep land $ places

Hasilnya akan kembali semua tempat kecuali untuk colwyn bay.

Ini jelas hanya berlaku untuk tempat-tempat yang berakhir di daratan (hampir tidak ilmiah).

Anda dapat membalikkan pilihan menggunakan sintaks berikut:

grep -v land $ places

Ini akan menemukan semua tempat yang tidak berakhir dengan tanah.

06 09

Cara Cari Baris Kosong Dalam File Menggunakan grep

Bayangkan Anda memiliki file input yang digunakan oleh aplikasi pihak ketiga yang berhenti membaca file ketika menemukan baris kosong sebagai berikut:

Ketika aplikasi sampai ke garis setelah liverpool itu akan berhenti membaca artinya colwyn bay terlewatkan sepenuhnya.

Anda dapat menggunakan grep untuk mencari baris kosong dengan sintaks berikut:

grep ^ $ places

Sayangnya ini tidak terlalu berguna karena hanya mengembalikan garis kosong.

Anda tentu saja dapat menghitung jumlah baris kosong sebagai cek untuk melihat apakah file tersebut valid sebagai berikut:

grep -c ^ $ places

Namun, akan lebih berguna untuk mengetahui nomor baris yang memiliki garis kosong sehingga Anda dapat menggantinya. Anda dapat melakukannya dengan perintah berikut:

grep -n ^ $ places

07 09

Cara Mencari String Karakter Huruf Besar Atau Huruf Kecil Menggunakan grep

Menggunakan grep Anda dapat menentukan baris mana dalam file yang memiliki karakter huruf besar menggunakan sintaks berikut:

grep '[AZ]' nama file

Tanda kurung siku [] memungkinkan Anda menentukan rentang karakter. Dalam contoh di atas cocok dengan karakter apa pun yang ada antara A dan Z.

Oleh karena itu untuk mencocokkan karakter huruf kecil Anda dapat menggunakan sintaks berikut:

grep '[az]' filename

Jika Anda ingin mencocokkan hanya huruf dan bukan angka atau simbol lainnya, Anda dapat menggunakan sintaks berikut:

grep '[a-zA-Z]' filename

Anda dapat melakukan hal yang sama dengan angka sebagai berikut:

grep '[0-9]' filename

08 09

Mencari Pola Mengulangi Menggunakan grep

Anda dapat menggunakan tanda kurung kurawal {} untuk mencari pola berulang.

Bayangkan Anda memiliki file dengan nomor telepon sebagai berikut:

Anda tahu bahwa bagian pertama dari bilangan harus tiga digit dan Anda ingin menemukan garis yang tidak cocok dengan pola ini.

Dari contoh sebelumnya, Anda tahu bahwa [0-9] mengembalikan semua angka dalam file.

Dalam hal ini kita ingin garis yang dimulai dengan tiga angka diikuti oleh tanda hubung (-). Anda dapat melakukannya dengan sintaks berikut:

grep "^ [0-9] [0-9] [0-9] -" angka

Seperti yang kita ketahui dari contoh sebelumnya, carat (^) berarti bahwa garis harus dimulai dengan pola berikut.

The [0-9] akan mencari nomor apa pun antara 0 dan 9. Karena ini termasuk tiga kali itu cocok 3 angka. Akhirnya ada tanda hubung untuk menunjukkan bahwa tanda hubung harus berhasil tiga angka.

Dengan menggunakan kurung kurawal Anda dapat menjadikan pencarian lebih kecil sebagai berikut:

grep "^ [0-9] \ {3 \} -" angka

Slash lolos dari {bracket sehingga berfungsi sebagai bagian dari ekspresi reguler tetapi pada intinya apa yang dikatakan adalah [0-9] {3} yang berarti angka apa pun antara 0 dan 9 tiga kali.

Kurung keriting juga dapat digunakan sebagai berikut:

{5,10}

{5,}

The {5,10} berarti bahwa karakter yang sedang dicari harus diulang setidaknya 5 kali tetapi tidak lebih dari 10 sedangkan {5,} berarti bahwa karakter harus diulang setidaknya 5 kali tetapi bisa lebih dari itu.

09 09

Menggunakan Output Dari Perintah Lain Menggunakan grep

Sejauh ini kita telah melihat pencocokan pola dalam file individual tetapi grep dapat menggunakan output dari perintah lain sebagai masukan untuk pencocokan pola.

Contoh yang bagus adalah menggunakan perintah ps yang mencantumkan proses aktif.

Misalnya jalankan perintah berikut:

ps -ef

Semua proses yang berjalan di sistem Anda akan ditampilkan.

Anda dapat menggunakan grep untuk mencari proses berjalan tertentu sebagai berikut:

ps -ef | grep firefox

Ringkasan

Perintah grep adalah perintah Linux yang mendasar dan merupakan salah satu yang layak dipelajari karena akan membuat hidup Anda lebih mudah ketika mencari file dan proses ketika menggunakan terminal.