GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengambil Banyak String, Pola, atau Kata

Pendahuluan

Grep adalah utilitas kuat yang tersedia secara default pada sistem berbasis UNIX. Namanya adalah singkatan dari Global Regular Expression Print.

Dengan menggunakan grep perintah, Anda dapat menyesuaikan cara alat mencari pola atau beberapa pola dalam kasus ini. Anda dapat mengambil banyak string di file dan direktori yang berbeda. Alat ini mencetak semua baris yang berisi kata-kata yang Anda tentukan sebagai pola pencarian.

Dalam panduan ini, kami akan menunjukkan kepada Anda cara menggunakan grep untuk menelusuri beberapa kata atau pola string . Ikuti contoh dalam tutorial ini untuk mempelajari cara menggunakan grep dengan paling efektif.

Prasyarat

  • Sistem mirip Linux atau UNIX
  • Akses ke terminal atau baris perintah
  • Pengguna dengan izin untuk mengakses file dan direktori yang diperlukan

Cara Menyerap Banyak Pola – Sintaks

Sintaks grep dasar saat mencari beberapa pola dalam file termasuk menggunakan grep perintah diikuti dengan string dan nama file atau jalurnya.

Pola harus diapit menggunakan tanda kutip tunggal dan dipisahkan oleh simbol pipa. Gunakan garis miring terbalik sebelum pipa | untuk ekspresi reguler.

grep 'pattern1\|pattern2' fileName_or_filePath

Cara terbaru untuk menggunakan grep adalah dengan -E pilihan. Opsi ini memperlakukan pola yang Anda gunakan sebagai ekspresi reguler yang diperluas .

grep -E 'pattern1|pattern2' fileName_or_filePath

Versi extended grep . yang tidak digunakan lagi adalah egrep .

egrep 'pattern1|pattern2' fileName_or_filePath

Opsi lainnya adalah menambahkan beberapa pola terpisah ke grep perintah.

Untuk melakukannya, gunakan -e tandai dan terus tambahkan jumlah pola pencarian yang diinginkan:

grep -e pattern1 -e pattern2 fileName_or_filePath

Apa Perbedaan Antara grep, grep -E, dan egrep?

egrep perintah adalah versi lama dari grep diperpanjang. Fungsinya sama dengan grep -E .

Perbedaan antara grep dan extended grep adalah extended grep menyertakan karakter meta yang ditambahkan kemudian.

Karakter ini adalah tanda kurung () , kurung kurawal {} , dan tanda tanya . Karakter pipa | juga diperlakukan sebagai karakter meta dalam grep yang diperluas.

Contoh Penggunaan Grep untuk Banyak String, Pola, dan Kata

Untuk memastikan Anda memahami cara menggunakan grep untuk mencari beberapa string, kami sarankan untuk membuat file dengan beberapa teks di mana kami akan mencoba beberapa kasus penggunaan yang berbeda.

Dalam kasus kami, kami menamai file sample.txt dan menambahkan beberapa paragraf teks. Kami menyimpan file di direktori test pengguna, yaitu di /home/test/sample.txt

Cara Menyerap Banyak Pola dalam Sebuah File

Dalam contoh di bawah ini, kita akan menggunakan grep alih-alih grep yang diperluas. Jangan lupa gunakan garis miring terbalik sebelum karakter pipa .

Karena grep tidak mendukung simbol pipa sebagai operator pergantian, Anda perlu menggunakan karakter escape (garis miring terbalik \) untuk memberi tahu grep perintah untuk memperlakukan pipa secara berbeda.

Misalnya, untuk menelusuri kata ekstra dan nilai di sample.txt file gunakan perintah ini:

grep 'extra\|value' sample.txt

Outputnya menyoroti string yang ingin Anda ambil.

Jika file yang sama ada di direktori lain , Anda perlu menavigasi ke direktori itu atau menggunakan jalur lengkap file:

grep 'extra\|value' /home/test/Desktop/sample.txt

Untuk menelusuri lebih dari dua kata , terus tambahkan dengan cara yang sama.

Misalnya, untuk mencari tiga kata, tambahkan string karakter yang diinginkan diikuti dengan garis miring terbalik dan pipa:

grep 'extra\|value\|service' sample.txt

Mari kita lihat bagaimana tampilan perintah grep di atas saat menggunakan grep -E , egrep , dan grep -e :

grep -E ‘extra|value|service’ sample.txt
egrep ‘extra|value|service’ sample.txt
grep -e extra -e value -e service sample.txt

Kami akan menggunakan grep dalam contoh lebih lanjut, tetapi Anda dapat menggunakan sintaks mana pun yang Anda inginkan.

Menelusuri Beberapa Kecocokan Tepat dalam Sebuah File

Jika Anda ingin menemukan kecocokan yang tepat untuk beberapa pola, teruskan -w tandai ke grep perintah.

grep -w 'provide\|count' sample.txt

Misalnya, output di bawah ini menunjukkan perbedaan antara mencari tanpa -w dan dengan itu:

Seperti yang Anda lihat, hasilnya berbeda. Perintah pertama menunjukkan semua baris dengan string yang Anda gunakan.

Perintah kedua menunjukkan cara mendapatkan pencocokan tepat untuk banyak string. Keluaran hanya mencetak baris yang berisi kata-kata persis.

Abaikan Huruf Besar Saat Menggunakan Grep untuk Beberapa String

Untuk menghindari kehilangan sesuatu saat Anda menelusuri beberapa pola, gunakan -i tandai untuk mengabaikan huruf besar/kecil.

Misalnya, kita akan mengabaikan kasus dengan perintah ini:

grep -i 'phoenix\|linux' sample.txt

Output menunjukkan bagaimana kedua perintah berbeda. Jika Anda menyertakan -i tandai dan abaikan huruf besar-kecil, hasil untuk beberapa kecocokan mencakup semua kecocokan.

Dengan cara ini, Anda mendapatkan hasil tambahan. Jika Anda juga menambahkan -w tandai perintah ini, Anda dapat mempersempit hasilnya lebih jauh:

Menampilkan Hitungan Beberapa Kecocokan dalam Sebuah File

Katakanlah Anda sedang memantau file log, dan Anda ingin melihat apakah jumlah peringatan atau pesan bertambah. Anda tidak ingin melihat hasil mendetail ketika banyak kecocokan kembali.

Misalnya, untuk menampilkan hitungan beberapa kecocokan di bootstrap.log file, masukkan:

grep -c 'warning\|error' /var/log/bootstrap.log

Output mencetak jumlah kecocokan. Dengan cara ini, Anda dapat dengan cepat menentukan apakah jumlah peringatan dan kesalahan meningkat.

Gep untuk Beberapa Pola dalam Jenis File Tertentu

Anda dapat menggunakan grep untuk mencari beberapa string dalam jenis file tertentu saja. Jika Anda ingin memantau file log dalam satu direktori atau jika Anda ingin menelusuri semua file teks, gunakan tanda bintang dan ekstensi file, bukan nama file.

Misalnya, untuk mencari peringatan dan kesalahan melalui semua .log file di /var/log/ direktori, masukkan:

grep 'warning\|error' /var/log/*.log

Untuk mendemonstrasikan cara kerja opsi ini dengan lebih baik, kami hanya akan menampilkan jumlah kecocokan.

Outputnya menunjukkan semua file yang grep mencari string yang Anda gunakan.

Mencari Secara Rekursif untuk Beberapa Pola dalam Sebuah File

grep perintah hanya mencari di direktori saat ini saat Anda menggunakan wildcard asterisk.

Untuk menyertakan semua subdirektori saat mencari beberapa pola, tambahkan -R operator ke grep:

grep -R 'warning\|error' /var/log/*.log

Output akan mengembalikan hasil dari semua file grep perintah ditemukan di /var/log/ direktori dan subdirektorinya.


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

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

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

  1. Bagaimana Menemukan Banyak String Dalam File??

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

  3. Bagaimana cara menggabungkan beberapa baris keluaran menjadi satu baris?

  1. Mencari string di banyak file di Linux

  2. Cara grep \n dalam file

  3. Mencari banyak pola (kata) dengan ack?