Skip to main content

Contoh Penggunaan Of Linux grep Command

bagian#2 Belajar Command Line Interface Linux BASH (Mungkin 2024)

bagian#2 Belajar Command Line Interface Linux BASH (Mungkin 2024)
Anonim

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, Anda akan mempelajari sejumlah contoh yang akan membantu Anda memahami perintah grep.

01 09

Cara Mencari String Dalam File Menggunakan GREP

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

  • Robin Hood
  • Anak berkerudung merah
  • Peter Pan
  • Goldilocks dan Tiga Beruang
  • Putri Salju dan Tujuh Kurcaci
  • Pinnochio
  • The Cat In The Hat
  • Tiga babi kecil
  • The Gruffalo
  • Charlie dan Pabrik Coklat

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

grep Buku-buku

Hasil berikut akan dikembalikan:

  • Goldilocks dan Tiga Beruang
  • Putri Salju dan Tujuh Kurcaci
  • The Cat In The Hat
  • Tiga babi kecil
  • The Gruffalo
  • Charlie dan Pabrik Coklat

Dalam setiap kasus, kata "The" akan disorot.

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

Lanjutkan Membaca Di Bawah Ini

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:

aberdeenaberystwythaberlourinverurieketidaksamaannewburghrusa barugalangan baruglasgowedinburgh

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

  • linux.about.com
  • pcsupport.about.com
  • mp3.about.com
  • minecraft.about.com
  • androidgames.about.com
  • netforbeginners.about.com
  • everydaylinuxuser.com
  • google.co.uk
  • google.au
  • direct.gov.uk

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

grep * about * nama domain

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

  • everydaylinuxuser.com/about.html

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.

Lanjutkan Membaca Di Bawah Ini

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:

  • Blackpool
  • Liverpool
  • Manchester City
  • kota Leicester
  • Manchester United
  • Newcastle United
  • FC United Of Manchester

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 kembali ke 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.

Lanjutkan Membaca Di Bawah Ini

05 09

Menemukan Semua Ketentuan yang Tidak Cocok menggunakan grep

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

  • aberdeen Skotlandia
  • glasgow Skotlandia
  • liverpool Inggris
  • colwyn bay
  • London, Inggris

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 seleksi 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:

  • aberdeen skotlandia
  • keserakahan skotlandia
  • liverpool inggris
  • Colwyn Bay Wales

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

Lanjutkan Membaca Di Bawah Ini

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 'A-Z' filename

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 'a-z' 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:

  • 055-1234
  • 055-4567
  • 555-1545
  • 444-0167
  • 444-0854
  • 4549-2234
  • x44-1234

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.

Tanda kurung kurawal dapat juga 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.

Lanjutkan Membaca Di Bawah Ini

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.