GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara Grep untuk Banyak String dan Pola

grep adalah alat baris perintah canggih yang memungkinkan Anda mencari satu atau beberapa file input untuk baris yang cocok dengan ekspresi reguler dan menulis setiap baris yang cocok ke output standar.

Dalam artikel ini, kami akan menunjukkan cara menggunakan GNU grep untuk mencari beberapa string atau pola.

Grep Banyak Pola #

GNU grep mendukung tiga sintaks ekspresi reguler, Basic, Extended, dan Perl-compatible. Ketika tidak ada tipe ekspresi reguler yang ditentukan, grep menafsirkan pola penelusuran sebagai ekspresi reguler dasar.

Untuk mencari beberapa pola, gunakan operator OR (alternation).

Operator pengganti | (pipe) memungkinkan Anda untuk menentukan kemungkinan kecocokan yang berbeda yang dapat berupa string literal atau kumpulan ekspresi. Operator ini memiliki prioritas terendah dari semua operator ekspresi reguler.

Sintaks untuk mencari beberapa pola menggunakan grep ekspresi reguler dasar adalah sebagai berikut:

grep 'pattern1\|pattern2' file...

Selalu sertakan ekspresi reguler dalam tanda kutip tunggal untuk menghindari interpretasi dan perluasan karakter meta oleh shell.

Saat menggunakan ekspresi reguler dasar, karakter meta ditafsirkan sebagai karakter literal. Untuk menjaga arti khusus dari meta-karakter, mereka harus diloloskan dengan garis miring terbalik (\ ). Inilah sebabnya mengapa kami keluar dari operator OR (| ) dengan garis miring.

Untuk menafsirkan pola sebagai ekspresi reguler yang diperluas, aktifkan grep -E ( atau --extended-regexp ) pilihan. Saat menggunakan ekspresi reguler yang diperluas, jangan lepas | operator:

grep -E 'pattern1|pattern2' file...

Untuk informasi selengkapnya tentang cara membuat ekspresi reguler, lihat artikel kami Grep regex.

Grep Banyak String #

String literal adalah pola paling dasar.

Dalam contoh berikut, kami mencari semua kemunculan kata fatal , error , dan critical dalam file kesalahan log Nginx:

grep 'fatal\|error\|critical' /var/log/nginx/error.log

Jika string yang Anda cari menyertakan spasi, tutup dengan tanda kutip ganda.

Berikut adalah contoh yang sama menggunakan ekspresi reguler yang diperluas, yang menghilangkan kebutuhan untuk keluar dari operator |

grep -E 'fatal|error|critical' /var/log/nginx/error.log

Secara default, grep peka huruf besar/kecil. Ini berarti bahwa karakter huruf besar dan kecil diperlakukan berbeda.

Untuk mengabaikan huruf besar/kecil saat mencari, aktifkan grep with -i opsi (atau --ignore-case ):

grep -i 'fatal\|error\|critical' /var/log/nginx/error.log

Saat mencari string, grep akan menampilkan semua baris di mana string tertanam dalam string yang lebih besar. Jadi jika Anda mencari “kesalahan”, grep juga akan mencetak baris di mana "kesalahan" disematkan dalam kata-kata yang lebih besar, seperti "tanpa kesalahan" atau "antiteroris".

Untuk mengembalikan hanya baris di mana string yang ditentukan adalah seluruh kata (diapit oleh karakter non-kata), gunakan -w ( atau --word-regexp ) pilihan:

grep -w 'fatal\|error\|critical' /var/log/nginx/error.log

Karakter kata termasuk karakter alfanumerik (a-z, A-Z, dan 0-9) dan garis bawah (_). Semua karakter lain dianggap sebagai karakter non-kata.

Untuk detail lebih lanjut tentang grep pilihan, kunjungi artikel kami perintah Grep.

Kesimpulan #

Kami telah menunjukkan cara grep untuk mencari beberapa pola, string, dan kata.

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


Linux
  1. Bagaimana saya menggunakan Ansible dan anacron untuk otomatisasi

  2. Bagaimana Menjalankan Grep Dengan Banyak Dan Pola?

  3. Bagaimana Kami Menentukan Beberapa Pola Abaikan Untuk Perintah `tree`?

  1. Linux – Bagaimana Mengetahui Apa yang Harus Diambil Di Dmesg?

  2. Grep Untuk Beberapa String Dalam File, Dan Kemudian Buat Daftar File Dalam Urutan Ukuran?

  3. Bagaimana Cara Mengetik Kata Sandi Untuk Banyak Windows?

  1. grep untuk istilah dan mengecualikan istilah lain

  2. Bagaimana cara chown direktori untuk banyak pengguna?

  3. grep pasang pola dan file