GNU/Linux >> Belajar Linux >  >> Linux

Cara melakukan pencarian pola dalam file menggunakan Grep

Dalam artikel pertama kami tentang perintah grep, kami membahas beberapa fitur yang ditawarkan alat ini, termasuk bagaimana Anda dapat menggunakannya untuk hanya menelusuri kata, menelusuri dua kata, menghitung baris yang berisi kata yang cocok, dan banyak lagi. Selain itu, alat ini menyediakan beberapa fitur yang lebih mudah dipahami dan berguna. Dalam artikel ini, kita akan membahas beberapa di antaranya.

Harap dicatat bahwa semua contoh yang disebutkan dalam tutorial ini telah diuji di Ubuntu 14.04LTS. Juga, kami akan menggunakan file berikut (test_file1.txt) untuk semua contoh terkait grep kami dalam tutorial ini:

Penelusuran tidak peka huruf besar-kecil dengan Grep

Secara default, grep peka huruf besar/kecil, artinya, misalnya, grep akan memperlakukan 'ABC' dan 'abc' secara terpisah. Namun, jika Anda ingin penelusuran Anda tidak peka huruf besar-kecil, Anda dapat menggunakan -i opsi baris perintah.

grep -i [string-to-be-searched] [filename]

Misalnya:

grep -i "linux" test_file1.txt

Catatan :Tidak hanya pola (misalnya, 'linux' dalam contoh di atas), halaman manual grep mengatakan bahwa opsi -i juga memastikan bahwa sensitivitas huruf besar/kecil untuk file input juga diabaikan. Berikut petikannya:

 -i, --ignore-case
Ignore case distinctions in both the PATTERN and the input files. (-i is specified by POSIX.)

Namun, kami tidak dapat mereproduksi perilaku terkait file masukan di pihak kami.

Menampilkan baris tertentu yang tidak cocok dengan baris yang berisi string yang cocok di Grep

Dengan menggunakan alat ini, Anda juga dapat menampilkan sejumlah baris tertentu setelah, sebelum, atau di sekitar garis yang berisi string yang cocok.

Gunakan -A opsi baris perintah untuk mencetak baris 'N' setelah baris yang cocok.

$ grep -A N [string-to-be-searched] [filename]

Misalnya:

$ grep -A 2 "linux" test_file1.txt

Berikut adalah output dari perintah di atas

Demikian pula, opsi baris perintah -B digunakan untuk menampilkan baris sebelum baris yang cocok.

$ grep -B N [string-to-be-searched] [filename]

Misalnya:

$ grep -B 2 "linux" test_file1.txt

Berikut adalah outputnya:

Terakhir, untuk mencetak garis di sekitar garis yang cocok, gunakan opsi baris perintah -C.

$ grep -C N [string-to-be-searched] [filename]

Misalnya:

$ grep -C 2 "linux" test_file1.txt

Berikut adalah output yang diambil:

Hanya mencetak string yang cocok di Grep

Anda juga diperbolehkan untuk hanya mencetak string yang cocok pada output standar (bukan baris lengkap yang ditampilkan secara default). Fitur ini dapat diakses menggunakan opsi baris perintah -o.

$ grep -o [string-to-be-searched] [filename]

Misalnya, jika persyaratannya adalah menelusuri string "linux" dalam file (tetapi baris lengkap tidak boleh dicetak), maka kita akan menggunakan perintah berikut.

$ grep -o "linux" [file-name]

Kita juga dapat menggunakan karakter wildcard seperti * dan .* untuk mengambil lebih dari satu string. Sebagai contoh, jika kita ingin mengambil sekelompok kata yang dimulai dari "how" dan diakhiri dengan "linux", maka kita dapat menggunakan perintah berikut.

$ grep -o “how.*linux” [file-name]

Tampilkan posisi di Grep

Perintah grep juga memungkinkan Anda untuk menampilkan byte-offset dari baris di mana string yang cocok muncul. Fitur ini dapat diakses menggunakan opsi baris perintah -b. Tetapi untuk penggunaan yang lebih baik dari opsi ini, Anda dapat menggunakannya dengan opsi baris perintah -o, yang akan menampilkan posisi yang tepat dari string yang cocok.

$ grep -o -b [string-to-be-searched] [filename]

Misalnya:

$ grep -o -b "for" test_file1.txt

Berikut adalah outputnya:

Kesimpulan

Anda mungkin tidak memerlukan semua opsi ini setiap hari, tetapi setidaknya Anda harus mengetahuinya karena Anda tidak pernah tahu kapan opsi ini akan berguna. Grep menjadi lebih kuat saat digunakan dengan ekspresi reguler, tetapi kita akan meninggalkan topik itu untuk beberapa hari lagi.


Linux
  1. Bagaimana Cara Mendapatkan Hitungan File Dalam Direktori Menggunakan Baris Perintah?

  2. Bagaimana Cara Grep Dalam File Pdf?

  3. Bagaimana Anda mencari file yang berisi akhiran baris DOS (CRLF) dengan grep di Linux?

  1. Bagaimana membandingkan tiga file di Linux menggunakan alat diff3

  2. Menggunakan Sed untuk Mencari &mengganti garis di antara rentang pola

  3. Bagaimana Cara Mencari Di File Tertentu yang Sesuai Dengan Pola?

  1. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  2. Menggunakan grep untuk mencari secara terbalik

  3. Bagaimana saya bisa mencari pola multiline dalam sebuah file?