Tutorial Ekspresi Biasa Linux: Grep Regex Contoh

Isi kandungan:

Anonim

Apakah Ekspresi Biasa Linux?

Linux Regular Expressions adalah watak khas yang membantu mencari data dan mencocokkan corak kompleks. Ungkapan biasa dipendekkan sebagai 'regexp' atau 'regex'. Mereka digunakan dalam banyak program Linux seperti grep, bash, rename, sed, dll.

Jenis Ungkapan Biasa

Untuk memudahkan pemahaman, mari kita pelajari pelbagai jenis Regex satu persatu.

  • Ungkapan Berkala Asas
  • Selang Ungkapan biasa
  • Ungkapan biasa yang diperluas
  • Ringkasan

Klik di sini jika video tidak dapat diakses

Ungkapan Berkala Asas

Beberapa perintah yang biasa digunakan dengan ungkapan Biasa adalah tr, sed, vi dan grep. Disenaraikan di bawah adalah beberapa Regex asas.

Simbol Penerangan
. menggantikan watak apa pun
pertandingan memulakan rentetan
$ sepadan dengan hujung tali
* sepadan dengan sifar atau lebih banyak kali dengan watak sebelumnya
\ Mewakili watak khas
() Mengumpulkan ungkapan biasa
? Sesuai dengan satu watak

Mari lihat contoh.

Laksanakan sampel kucing untuk melihat kandungan fail yang ada

Cari kandungan yang mengandungi huruf 'a'.

' ^ ' sepadan dengan permulaan rentetan. Mari cari kandungan yang BERMULA dengan a

Hanya garis yang bermula dengan watak yang ditapis. Garis yang tidak mengandungi watak 'a' pada awalnya tidak dihiraukan.

Mari lihat contoh lain -

Pilih hanya garis yang diakhiri dengan t menggunakan $

Selang Ungkapan biasa

Ungkapan-ungkapan ini memberitahu kami tentang jumlah kejadian watak dalam rentetan. Mereka adalah

Ungkapan Penerangan
{n}

Memadankan watak sebelumnya yang muncul 'n' kali dengan tepat

{n, m} Sesuai dengan watak sebelumnya yang muncul kali 'n' tetapi tidak lebih daripada m
{n,} Memadankan watak sebelumnya hanya apabila muncul kali 'n' atau lebih

Contoh:

Tapis semua baris yang mengandungi watak 'p'

Kami ingin memeriksa bahawa watak 'p' muncul tepat 2 kali dalam rentetan satu demi satu. Untuk ini sintaksnya adalah:

cat sample | grep -E p\{2}

Catatan: Anda perlu menambahkan -E dengan ungkapan biasa ini.

Ungkapan biasa yang diperluas

Ungkapan biasa ini mengandungi gabungan lebih dari satu ungkapan. Sebahagian daripadanya adalah:

Ungkapan Penerangan

\ +

Sesuai dengan satu atau lebih kejadian watak sebelumnya

\?

Memadankan sifar atau satu kejadian watak sebelumnya

Contoh:

Mencari semua watak 't'

Katakan kita mahu menapis garis di mana watak 'a' mendahului watak 't'

Kita boleh menggunakan perintah seperti

cat sample|grep "a\+t"

Pengembangan pendakap

Sintaks untuk pengembangan pendakap adalah urutan atau senarai item yang dipisahkan koma di dalam pendakap keriting "{}". Item permulaan dan akhir secara berurutan dipisahkan oleh dua titik "…".

Beberapa contoh:

Dalam contoh di atas, perintah echo membuat rentetan menggunakan pengembangan pendakap.

Ringkasan:

  • Ungkapan biasa adalah sekumpulan watak yang digunakan untuk memeriksa corak dalam rentetan
  • Mereka juga disebut 'regexp' dan 'regex'
  • Penting untuk mempelajari ungkapan biasa untuk menulis skrip
  • Beberapa ungkapan biasa asas adalah:
Simbol Penerangan
. menggantikan watak apa pun
pertandingan memulakan rentetan
$ sepadan dengan hujung tali
  • Beberapa ungkapan biasa yang diperluas adalah:
Ungkapan Penerangan
\ + Sesuai dengan satu atau lebih kejadian watak sebelumnya
\? Memadankan sifar atau satu kejadian watak sebelumnya
  • Beberapa ungkapan biasa selang adalah:
Ungkapan Penerangan
{n} Memadankan watak sebelumnya yang muncul 'n' kali dengan tepat
{n, m} Sesuai dengan watak sebelumnya yang muncul kali 'n' tetapi tidak lebih daripada m
{n,} Memadankan watak sebelumnya hanya apabila muncul kali 'n' atau lebih
  • Pengembangan pendakap digunakan untuk menghasilkan tali. Ini membantu dalam membuat pelbagai rentetan daripada satu.