GNU/Linux >> Belajar Linux >  >> Linux

Cara Mengecualikan di Grep

grep adalah alat baris perintah yang digunakan untuk mencari satu atau lebih 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 mengecualikan satu atau beberapa kata, pola, atau direktori saat menelusuri dengan grep .

Kecualikan Kata dan Pola #

Untuk hanya menampilkan baris yang tidak cocok dengan pola pencarian, gunakan -v ( atau --invert-match ) pilihan.

Misalnya untuk mencetak baris yang tidak mengandung string nologin Anda akan menggunakan:

grep -wv nologin /etc/passwd
root:x:0:0:root:/root:/bin/bash
git:x:994:994:git daemon user:/:/usr/bin/git-shell
linuxize:x:1000:1000:linuxize:/home/linuxize:/bin/bash

-w opsi memberitahu grep untuk mengembalikan hanya baris di mana string yang ditentukan adalah seluruh kata (diapit oleh karakter non-kata).

Secara default, grep peka huruf besar/kecil. Ini berarti bahwa karakter huruf besar dan kecil diperlakukan berbeda. Untuk mengabaikan kasus saat mencari, aktifkan grep dengan -i pilihan.

Jika string pencarian menyertakan spasi, Anda harus menyertakannya dalam tanda kutip tunggal atau ganda.

Untuk menentukan dua atau lebih pola pencarian, gunakan -e pilihan:

grep -wv -e nologin -e bash /etc/passwd

Anda dapat menggunakan -e pilihan sebanyak yang Anda butuhkan.

Pilihan lain untuk mengecualikan beberapa pola pencarian adalah dengan menggabungkan pola menggunakan operator ATAU | .

Contoh berikut mencetak baris yang tidak mengandung string nologin atau bash :

grep -wv 'nologin\|bash' /etc/passwd

GNU grep mendukung tiga sintaks ekspresi reguler, Basic, Extended, dan Perl-compatible. Secara default, grep menginterpretasikan pola sebagai ekspresi reguler dasar di mana meta-karakter seperti | kehilangan arti khususnya, dan Anda harus menggunakan versi garis miring terbalik.

Jika Anda menggunakan opsi ekspresi reguler yang diperluas -E , lalu operator | tidak boleh diloloskan, seperti yang ditunjukkan di bawah ini:

grep -Ewv 'nologin|bash' /etc/passwd

Anda dapat menentukan kemungkinan kecocokan yang berbeda yang dapat berupa string literal atau kumpulan ekspresi. Pada contoh berikut, baris tempat string games terjadi di awal baris dikecualikan:

grep -v "^games" file.txt

Keluaran perintah dapat difilter dengan grep melalui pemipaan, dan hanya garis yang cocok dengan pola tertentu yang akan dicetak pada terminal.

Misalnya, untuk mencetak semua proses yang berjalan di sistem Anda kecuali yang berjalan sebagai “root” pengguna, Anda dapat memfilter output ps perintah:

ps -ef | grep -wv root

Kecualikan Direktori dan File #

Terkadang saat melakukan pencarian rekursif dengan -r atau -R pilihan, Anda mungkin ingin mengecualikan direktori tertentu dari hasil pencarian.

Perbedaan utama antara -r atau -R options adalah ketika grep dipanggil dengan huruf besar R itu akan mengikuti semua tautan simbolik

Untuk mengecualikan direktori dari pencarian, gunakan --exclude-dir pilihan. Jalur ke direktori yang dikecualikan relatif terhadap direktori pencarian.

Berikut adalah contoh yang menunjukkan cara mencari string linuxize di semua file di dalam /etc , tidak termasuk /etc/pki direktori:

grep -R --exclude-dir=pki linuxize /etc

Untuk mengecualikan beberapa direktori, lampirkan direktori yang dikecualikan dalam tanda kurung kurawal dan pisahkan dengan koma tanpa spasi.

Misalnya, untuk menemukan file yang berisi string 'gnu' di sistem Linux Anda kecuali proc , boot , dan sys direktori yang akan Anda jalankan:

grep -r --exclude-dir={proc,boot,sys} gnu /

Saat menggunakan pencocokan karakter pengganti, Anda dapat mengecualikan file yang nama dasarnya cocok dengan GLOB yang ditentukan dalam --exclude pilihan.

Pada contoh di bawah, kami mencari semua file di direktori kerja saat ini untuk string linuxize , tidak termasuk file yang diakhiri dengan .png dan .jpg direktori:

grep -rl --exclude=*.{png,jpg} linuxize *

Kesimpulan #

grep perintah memungkinkan Anda untuk mengecualikan pola dan direktori saat mencari file.


Linux
  1. Bagaimana Cara Grep Dalam File Pdf?

  2. Bagaimana Cara Mempercepat Pencarian Di Dash?

  3. Cara Menemukan Teks Tertentu menggunakan GREP di Linux

  1. Bagaimana cara saya grep secara rekursif?

  2. Bagaimana saya bisa mengecualikan direktori dari grep -R?

  3. Cara grep \n dalam file

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

  2. Menggunakan grep untuk mencari secara terbalik

  3. Cara mencari halaman manual Linux (mis. Dengan grep)