GNU/Linux >> Belajar Linux >  >> Linux

10 contoh praktis regex dengan grep

Grep atau Global Regular Expression Print digunakan untuk mencari teks atau pola dalam sistem Linux. Itu dapat mencari di file, direktori, dan bahkan output dari perintah lain.

Ekspresi reguler adalah pola yang dapat mencocokkan teks sesuai dengan kebutuhan pengguna. Ini seperti aturan untuk pencocokan pola.

Grep sering digunakan bersama dengan ekspresi reguler untuk mencari pola dalam teks. Mari kita lihat beberapa contoh praktis regex dengan grep.

1. Mencocokkan kata terlepas dari kasusnya

Terkadang dalam sebuah teks, kata yang sama dapat ditulis dengan cara yang berbeda. Ini paling sering terjadi dengan kata benda yang tepat. Alih-alih dimulai dengan huruf besar, terkadang ditulis dengan huruf kecil semua.

$ grep "[Jj]ayant" 

Kedua versi kata tersebut, terlepas dari kasusnya, telah dicocokkan.

Kasus menarik lainnya dapat diamati dengan kata 'IoT'. Kata seperti ini mungkin muncul beberapa kali di seluruh teks dengan variasi yang berbeda. untuk mencocokkan semua kata terlepas dari penggunaan kasus :

$ grep "[iI][oO][tT]"

2. Mencocokkan nomor ponsel menggunakan regex dengan grep

Ekspresi reguler dapat digunakan untuk mengekstrak nomor ponsel dari teks.

Format nomor ponsel harus diketahui terlebih dahulu. Misalnya, ekspresi reguler yang dirancang untuk mencocokkan nomor ponsel tidak akan berfungsi untuk nomor telepon rumah.

Dalam contoh ini, nomor ponsel dengan format berikut:91-1234567890 (yaitu TwoDigit-TenDigit) akan dicocokkan.

$ grep "[[:digit:]]\{2\}[ -]\?[[:digit:]]\{10\}"

Terbukti, hanya nomor ponsel dalam format yang disebutkan di atas yang cocok.

3. Cocokkan alamat email

Mengekstrak alamat email dari teks sangat berguna dan dapat dilakukan dengan menggunakan grep.

Alamat email memiliki format tertentu. Bagian sebelum '@' adalah nama pengguna yang mengidentifikasi kotak surat. Lalu ada domain seperti gmail.com atau yahoo.in.

Ekspresi reguler dapat dirancang dengan mengingat hal-hal ini.

$ grep -E "[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}"
  • [A-Za-z0-9._%+-]+ menangkap nama pengguna sebelum '@'
  • [A-Za-z0-9.-]+ menangkap nama domain tanpa bagian '.com'
  • .[A-Za-z]{2,6} menangkap '.com' atau '.in' dll.

4. Pemeriksa URL

URL memiliki format representasi tertentu. Regex dapat dibuat untuk memverifikasi apakah URL dalam bentuk yang benar atau tidak.

URL harus dimulai dengan http/https/ftp diikuti dengan '://'. Lalu ada nama domain yang bisa diakhiri dengan '.com', '.in', '.org' dll.

$ grep -E "^(http|https|ftp):[\/]{2}([a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,4})"

-E digunakan dalam contoh ini dan sebelumnya menandakan grep diperpanjang yang menggunakan set Ekspresi Reguler Diperpanjang alih-alih set Ekspresi Reguler Dasar. Ini berarti bahwa karakter khusus tertentu tidak perlu diloloskan. Itu membuat proses penulisan regex yang kompleks tidak terlalu melelahkan. Baca selengkapnya di sini.

5. Menemukan file dengan ekstensi tertentu

Perintah ls menampilkan semua file di direktori saat ini.

menjalankan ls -l memberikan informasi tambahan mengenai file. Grep dapat digunakan bersama dengan perintah ls -l untuk mencocokkan pola dalam outputnya.

Untuk mengambil file yang disimpan dengan ekstensi '.txt' gunakan:

$ ls -l | grep '.txt$' 

6. Temukan konten dalam tanda kurung

Seringkali file teks memiliki konten dalam tanda kurung. Kita dapat mengekstraknya menggunakan regex dengan grep.

$ grep "([A-Za-z ]*)"

Regex akan memilih teks yang ada di dalam paratesis. Panjang konten dalam tanda kurung juga dapat ditentukan.

Misalnya, Untuk mencocokkan tanda kurung dengan hanya 10 karakter gunakan :

$ grep "([A-Za-z ]{10})"

7. Mencocokkan baris yang dimulai dengan kata tertentu

Kita dapat menggunakan regex untuk menemukan baris yang dimulai dengan kata tertentu.

Untuk menemukan baris yang dimulai dengan kata Apel gunakan :

grep '^Apples' input.txt 

Demikian pula, baris yang dimulai dengan kata lain juga dapat ditemukan.

Kita dapat mencocokkan baris yang diakhiri dengan kata tertentu menggunakan ekspresi reguler di bawah ini.

$ grep 'apples.$' input.txt

8. Mencocokkan beberapa kata sekaligus

Mari kita cocokkan beberapa kata dengan regex seperti yang ditunjukkan di bawah ini:

$ grep 'Apples\|Orange' input.txt

Perintah ini bekerja dengan garis OR di antara dua kata. Ini cocok dengan baris yang berisi salah satu dari dua kata tersebut.

Untuk melakukan AND di antara dua kata, gunakan:

$ grep 'Apple' input.txt | grep 'Orange

9. Mencocokkan kata yang sama dalam bentuk yang berbeda

Terkadang sebuah kata dapat muncul dalam bentuk yang berbeda. Mereka dapat berbeda berdasarkan tense yang mereka gunakan.

Peeled dan Peeling adalah contohnya. Dalam kedua kata tersebut, akar kata adalah 'kupas'

Kita dapat menggunakan regex untuk mencocokkan semua bentuk kata.

Dalam teks kami, kami telah mengeja peeled dan peeling masing-masing sebagai pealed dan pealing.

Kami juga dapat menerjemahkan dari Bahasa Inggris AS ke Bahasa Inggris Inggris dengan cara yang sama. Misalnya, kata warna menjadi warna.

$ grep 'peal\([a-z]*\)\(\.*[[:space:]]\)' input.txt

10. Mencari pengguna di file /etc/passwd

grep dapat digunakan untuk mendapatkan pengguna dari file /etc/passwd/. File /etc/passwd menyimpan daftar pengguna pada sistem bersama dengan beberapa informasi tambahan.

$ grep "Adam" /etc/passwd 

Perintah menggunakan grep pada file sistem. Ketika kata “Adam” ditemukan, kita dapat melihat baris sebagai output. Kami dapat melakukan pencarian yang sama untuk elemen lain dalam file.

Kesimpulan

Regex bersama dengan perintah grep bisa sangat kuat. Regex dipelajari sebagai bidang terpisah dalam ilmu komputer dan dapat digunakan untuk mencocokkan pola yang sangat kompleks. Pelajari lebih lanjut tentang regex di sini.


Linux
  1. Cara Menggunakan Perintah Hexdump Linux dengan Contoh Praktis

  2. 10 Contoh Perintah Grep Praktis untuk Pengembang

  3. Array AWK Dijelaskan dengan 5 Contoh Praktis

  1. Tutorial Awk:Memahami Variabel Awk dengan 3 Contoh Praktis

  2. Ekspresi Reguler Tingkat Lanjut dalam Perintah Grep dengan 10 Contoh – Bagian II

  3. Perintah Gema dengan Contoh Praktis

  1. Memulai dengan ekspresi reguler

  2. Ekspresi Reguler dalam Perintah Grep dengan 10 Contoh – Bagian I

  3. Perintah rsync Linux dengan contoh praktis