Penguasaan Baris Perintah Linux & Penskripan Bash · Pelajaran

Grep Lanjutan dengan Regex

Gunakan corak regex yang kompleks dengan 'grep' untuk melakukan carian teks yang sangat khusus dan cekap dalam fail.

Pelajaran 2 daripada 411 langkah

Grep Lanjutan dengan Regex ialah pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.

Kuasa Super Regex grep

Selamat datang ke Grep Lanjutan dengan Regex! Dalam pelajaran sebelumnya, kita telah mempelajari tentang Ungkapan Nalar (Regex). Kini, mari kita manfaatkan sepenuhnya keupayaannya dalam perintah grep yang berkuasa.

grep ialah alat utama anda untuk mencari corak teks dalam fail. Dengan menggabungkannya dengan regex lanjutan, anda boleh menentukan dengan tepat perkara yang dicari, walau serumit mana pun coraknya.

Mengaktifkan Regex Lanjutan (-E)

Secara lalai, grep menggunakan Ungkapan Nalar Asas (BRE). Untuk menggunakan ciri yang lebih lanjutan seperti +, ?, | dan (), kita perlu mengaktifkan Ungkapan Nalar Lanjutan (ERE).

Anda boleh berbuat demikian menggunakan pilihan -E atau perintah egrep, yang pada asasnya ialah grep -E. Mari kita cipta fail contoh untuk digunakan:

echo "apple
banana
appanana
orange
app" > fruits.txt

Pengkuantiti: Satu atau Lebih (+)

Pengkuantiti + sepadan dengan satu atau lebih kemunculan aksara atau kumpulan sebelumnya. Ia amat berguna apabila anda menjangka sesuatu corak berulang sekurang-kurangnya sekali.

Contohnya, untuk mencari baris yang mengandungi 'p' diikuti oleh satu atau lebih huruf 'a', kita akan menggunakan pa+.

grep -E 'pa+' fruits.txt

Pengkuantiti: Sifar atau Lebih (*)

Pengkuantiti * sepadan dengan sifar atau lebih kemunculan aksara atau kumpulan sebelumnya. Ini berguna apabila sesuatu aksara mungkin wujud tetapi tidak diwajibkan sepenuhnya.

Mari kita cari baris yang mengandungi 'b' diikuti oleh sifar atau lebih huruf 'a':

grep -E 'ba*' fruits.txt

Pengkuantiti: Sifar atau Satu (?)

Pengkuantiti ? sepadan dengan sifar atau satu kemunculan aksara atau kumpulan sebelumnya. Anggaplah ia sebagai cara menjadikan sesuatu aksara pilihan.

Mahukan kedua-dua 'color' dan 'colour'? Anda boleh menjadikan huruf 'u' sebagai pilihan:

echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txt

Bilangan Khusus dengan {} (Pendakap Keriting)

Untuk kawalan yang lebih terperinci, anda boleh menentukan bilangan tepat atau julat menggunakan pendakap keriting {}:

  • a{3}: Tepat tiga huruf 'a'.
  • a{2,}: Dua atau lebih huruf 'a'.
  • a{1,3}: Antara satu hingga tiga huruf 'a'.

Mari kita cari baris yang mengandungi 'a' berulang tepat dua kali:

grep -E 'a{2}' fruits.txt

Penambat: Awal dan Akhir (^, $)

Penambat tidak sepadan dengan aksara; penambat sepadan dengan kedudukan. Penambat ^ sepadan dengan awal baris, manakala $ sepadan dengan akhir baris.

Ini penting untuk memastikan corak anda sepadan dengan seluruh baris atau bermula/berakhir tepat pada kedudukan yang anda kehendaki.

  • ^apple: Baris yang bermula dengan 'apple'.
  • banana$: Baris yang berakhir dengan 'banana'.
  • ^apple$: Baris yang hanya mengandungi 'apple'.
grep -E '^app' fruits.txt

Alternasi dengan OR (|)

Simbol | (palang tegak) bertindak sebagai operator OR. Ia membolehkan anda memadankan satu corak ATAU corak yang lain. Ini amat berguna untuk mencari beberapa perkataan atau frasa berbeza serentak.

Contohnya, untuk mencari baris yang mengandungi sama ada 'apple' atau 'orange':

grep -E 'apple|orange' fruits.txt

Mengumpulkan Corak dengan ()

Kurungan () digunakan untuk mengumpulkan bahagian dalam ungkapan nalar. Dengan ini, anda boleh menggunakan pengkuantiti atau alternasi pada seluruh kumpulan, bukan hanya pada satu aksara.

Contohnya, untuk mencari 'ana' yang muncul satu kali atau lebih selepas 'b':

grep -E 'b(ana)+' fruits.txt

Semakan Pantas: Grep Lanjutan

Diberikan fail data.txt yang mengandungi:

cat
cats
catt
catterpillar
dog

Apakah perintah yang akan mencari dengan betul baris yang mengandungi 'cat' diikuti oleh sifar atau lebih huruf 't'?

Imbas Kembali: Kuasa Regex Grep

Anda telah menguasai teknik grep lanjutan menggunakan Ungkapan Nalar Lanjutan! Kita telah membincangkan:

  • Menggunakan -E untuk ciri regex lanjutan.
  • Pengkuantiti: + (satu atau lebih), * (sifar atau lebih), ? (sifar atau satu) dan {} untuk bilangan khusus.
  • Penambat: ^ (awal baris) dan $ (akhir baris).
  • Alternasi | untuk syarat 'OR'.
  • Mengumpulkan corak dengan ().

Alat ini membolehkan anda menjalankan carian teks yang sangat tepat dan fleksibel, menjadikan anda benar-benar mahir menggunakan baris perintah!

Percuma untuk bermula

Pelajari Bash dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
22
Pelajaran
88

Soalan Lazim

Adakah pelajaran “Grep Lanjutan dengan Regex” percuma?

Ya — teks penuh “Grep Lanjutan dengan Regex” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Penguasaan Baris Perintah Linux & Penskripan Bash, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux & Penskripan Bash merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Grep Lanjutan dengan Regex”?

Gunakan corak regex yang kompleks dengan 'grep' untuk melakukan carian teks yang sangat khusus dan cekap dalam fail. Anda berlatih Penguasaan Baris Perintah Linux & Penskripan Bash menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Penguasaan Baris Perintah Linux & Penskripan Bash?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux & Penskripan Bash di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Grep Lanjutan dengan Regex” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash ini?

Ya. Setiap pelajaran Penguasaan Baris Perintah Linux & Penskripan Bash menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengenalan kepada Ungkapan Nalar (Regex)
  2. Grep Lanjutan dengan Regex
  3. Menggabungkan Regex dengan sed/awk
  4. Kumpulan Tangkapan, Rujukan Belakang dan Penggantian
← Kembali ke Penguasaan Baris Perintah Linux & Penskripan Bash