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.