GNU/Linux >> Belajar Linux >  >> Linux

7 Contoh Operator Linux Grep OR, Grep AND, Grep NOT

Pertanyaan: Bisakah Anda menjelaskan cara menggunakan operator OR, AND dan NOT dalam perintah grep Unix dengan beberapa contoh?

Jawaban: Di grep, kami memiliki opsi yang setara dengan operator OR dan NOT. Tidak ada grep AND operator. Tapi, Anda dapat mensimulasikan DAN menggunakan pola. Contoh yang disebutkan di bawah ini akan membantu Anda memahami cara menggunakan OR, AND dan NOT di perintah grep Linux.

File employee.txt berikut digunakan dalam contoh berikut.

$ cat employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   Manager    Sales       $6,000

Anda sudah tahu bahwa grep sangat kuat berdasarkan contoh perintah grep ini.

Grep ATAU Operator

Gunakan salah satu dari 4 metode berikut untuk grep OR. Saya lebih suka metode nomor 3 yang disebutkan di bawah ini untuk grep ATAU operator.

1. Grep ATAU Menggunakan \|

Jika Anda menggunakan perintah grep tanpa opsi apa pun, Anda perlu menggunakan \| untuk memisahkan beberapa pola untuk kondisi atau.

grep 'pattern1\|pattern2' filename

Misalnya, ambil Tech atau Sales dari file employee.txt. Tanpa garis miring di depan pipa, berikut ini tidak akan berfungsi.

$ grep 'Tech\|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

2. Grep ATAU Menggunakan -E

opsi grep -E adalah untuk regexp yang diperpanjang. Jika Anda menggunakan perintah grep dengan opsi -E, Anda hanya perlu menggunakan | untuk memisahkan beberapa pola untuk kondisi atau.

grep -E 'pattern1|pattern2' filename

Misalnya, ambil Tech atau Sales dari file employee.txt. Cukup gunakan | untuk memisahkan beberapa pola ATAU.

$ grep -E 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

3. Grep ATAU Menggunakan egrep

egrep persis sama dengan 'grep -E'. Jadi, gunakan egrep (tanpa opsi apa pun) dan pisahkan beberapa pola untuk kondisi atau.

egrep 'pattern1|pattern2' filename

Misalnya, ambil Tech atau Sales dari file employee.txt. Cukup gunakan | untuk memisahkan beberapa pola ATAU.

$ egrep 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

4. Grep ATAU Menggunakan grep -e

Menggunakan opsi grep -e Anda hanya dapat melewatkan satu parameter. Gunakan beberapa opsi -e dalam satu perintah untuk menggunakan beberapa pola untuk kondisi atau.

grep -e pattern1 -e pattern2 filename

Misalnya, ambil Tech atau Sales dari file employee.txt. Gunakan beberapa opsi -e dengan grep untuk beberapa pola ATAU.

$ grep -e Tech -e Sales employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

Grep DAN

5. Grep DAN menggunakan -E ‘pattern1.*pattern2’

Tidak ada operator AND di grep. Namun, Anda dapat mensimulasikan DAN menggunakan opsi grep -E.

grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename

Contoh berikut akan menangkap semua baris yang berisi "Dev" dan "Tech" di dalamnya (dalam urutan yang sama).

$ grep -E 'Dev.*Tech' employee.txt
200  Jason   Developer  Technology  $5,500

Contoh berikut akan menangkap semua baris yang berisi "Manager" dan "Penjualan" di dalamnya (dalam urutan apa pun).

$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt

Catatan: Menggunakan ekspresi reguler di grep sangat ampuh jika Anda tahu cara menggunakannya secara efektif.

6. Grep DAN menggunakan Beberapa perintah grep

Anda juga dapat menggunakan beberapa perintah grep yang dipisahkan oleh pipa untuk mensimulasikan skenario AND.

grep -E 'pattern1' filename | grep -E 'pattern2'

Contoh berikut akan menangkap semua baris yang berisi "Manajer" dan "Penjualan" di baris yang sama.

$ grep Manager employee.txt | grep Sales
100  Thomas  Manager    Sales       $5,000
500  Randy   Manager    Sales       $6,000

Gep TIDAK

7. Grep TIDAK menggunakan grep -v

Menggunakan grep -v Anda dapat mensimulasikan kondisi NOT. -v opsi untuk kecocokan terbalik. yaitu Ini cocok dengan semua baris kecuali pola yang diberikan.

grep -v 'pattern1' filename

Misalnya, tampilkan semua baris kecuali yang mengandung kata kunci “Penjualan”.

$ grep -v Sales employee.txt
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500

Anda juga dapat menggabungkan NOT dengan operator lain untuk mendapatkan beberapa kombinasi yang kuat.

Misalnya, berikut ini akan menampilkan Manajer atau Pengembang (bot mengabaikan Penjualan).

$ egrep 'Manager|Developer' employee.txt | grep -v Sales
200  Jason   Developer  Technology  $5,500
400  Nisha   Manager    Marketing   $9,500

Linux
  1. Perintah Sed Linux:Penggunaan dan Contoh

  2. Linux – Mengapa Kami Menggunakan Su – Dan Bukan Hanya Su?

  3. Contoh Perintah mkdir dan rmdir di Linux

  1. Perintah Linux Cat:Penggunaan dan Contohnya

  2. Tutorial Perintah Linux nice and renice (7 Contoh)

  3. contoh Perintah swapon dan swapoff di Linux

  1. Perintah Linux - Gambaran Umum dan Contoh

  2. Perintah Head and Tail di Linux Dijelaskan dengan Contoh

  3. Contoh Perintah grep di Linux (Lembar Cheat)