Corak Lanjutan `grep` dan `find`
Gunakan regex kompleks dengan `grep` dan kriteria lanjutan dengan `find` untuk carian yang tepat.
Corak Lanjutan `grep` dan `find` ialah pelajaran Penguasaan Baris Perintah Linux 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, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Penguasaan Baris Perintah Linux merangkumi sejumlah 4 pelajaran.
Melangkaui Carian Asas
Selamat datang kembali! Dalam pelajaran sebelum ini, anda telah mempelajari asas grep untuk menapis teks dan find untuk mencari fail.
Hari ini, kita akan mendalami corak lanjutan. Ini bermaksud menggunakan ungkapan nalar yang lebih berkuasa dengan grep dan kriteria yang lebih canggih dengan find untuk mendapatkan carian yang sangat tepat.
`grep` yang Dipertingkatkan dengan ERE
Perintah grep standard menggunakan Ungkapan Nalar Asas (BRE). Untuk mendapatkan lebih banyak keupayaan, kita biasanya beralih kepada Ungkapan Nalar Lanjutan (ERE).
- Gunakan pilihan
-E(atauegrep) untuk mendayakan ERE. - ERE membolehkan ciri seperti
+(satu atau lebih),?(sifar atau satu),|(OR), dan()untuk mengumpulkan corak tanpa perlu meloloskannya.
Contoh ERE: Satu atau Lebih (`+`)
Metacharacter + sepadan dengan satu atau lebih kemunculan aksara atau kumpulan sebelumnya. Contohnya, colou+r akan sepadan dengan "colour" dan "colouur", tetapi bukan "color".
Cuba jalankan contoh ini:
#!/bin/bash
# Create a test file
echo "color" > my_text.txt
echo "colour" >> my_text.txt
echo "colouur" >> my_text.txt
echo "Searching for 'colou+r':"
grep -E "colou+r" my_text.txt
# Clean up
rm my_text.txtContoh ERE: Sifar atau Satu (`?`)
Metacharacter ? sepadan dengan sifar atau satu kemunculan aksara atau kumpulan sebelumnya. Ia berguna untuk aksara pilihan.
Contohnya, colou?r akan sepadan dengan "color" (sifar 'u') dan "colour" (satu 'u').
Jalankan ini untuk melihatnya berfungsi:
#!/bin/bash
# Create a test file
echo "color" > my_text.txt
echo "colour" >> my_text.txt
echo "colouur" >> my_text.txt
echo "Searching for 'colou?r':"
grep -E "colou?r" my_text.txt
# Clean up
rm my_text.txtContoh ERE: Logik OR (`|`)
Metacharacter | bertindak sebagai operator OR, yang membolehkan anda memadankan satu corak atau corak yang lain. Kurungan () digunakan untuk mengumpulkan corak.
Contohnya, (cat|dog)s sepadan dengan "cats" atau "dogs".
Berikut ialah demonstrasi ringkas:
#!/bin/bash
# Create a test file
echo "apple" > fruits.txt
echo "banana" >> fruits.txt
echo "orange" >> fruits.txt
echo "grape" >> fruits.txt
echo "Searching for 'apple' OR 'orange':"
grep -E "apple|orange" fruits.txt
# Clean up
rm fruits.txt`find` Lanjutan: Masa Pengubahsuaian (`-mtime`)
Selain nama, find juga boleh mencari fail berdasarkan masa fail tersebut terakhir diubah suai. Pilihan -mtime penting untuk tujuan ini.
-mtime N: Fail yang diubah suai tepat N*24 jam yang lalu.-mtime +N: Fail yang diubah suai lebih daripada N*24 jam yang lalu.-mtime -N: Fail yang diubah suai kurang daripada N*24 jam yang lalu.
Contohnya, find . -mtime -7 mencari fail yang diubah suai dalam tempoh 7 hari yang lalu.
`find` Lanjutan: Masa Akses & Saiz
Anda juga boleh mencari berdasarkan masa akses (masa fail terakhir dibaca) dan saiz fail:
-atime N: Fail yang terakhir diakses N*24 jam yang lalu.-size N[cwbkMG]: Fail dengan saiz tertentu.
Unit saiz: c (bait), w (perkataan dua bait), b (blok 512 bait, lalai), k (KB), M (MB), G (GB).
Contoh: find . -size +1M mencari fail yang lebih besar daripada 1MB.
#!/bin/bash
# Create a test file (1.5MB approx)
head -c 1500K /dev/urandom > large_file.bin
touch -a large_file.bin # Access now for -atime
echo "Finding files larger than 1MB:"
find . -size +1M -name "large_file.bin"
# Clean up
rm large_file.binMenggabungkan Kriteria `find`
Perintah find berkuasa kerana anda boleh menggabungkan berbilang kriteria. Secara lalai, kriteria digabungkan dengan AND tersirat.
Anda juga boleh menggunakan:
-a: AND nyata (sering ditinggalkan).-o: Operator OR.( ): Kurungan untuk pengumpulan (mesti diloloskan atau diletakkan dalam tanda petik dalam shell).
Contoh: find . -type f -name "*.txt" -o -name "*.log" mencari semua fail .txt ATAU .log.
#!/bin/bash
# Create test files
touch file1.txt
touch file2.log
touch file3.md
echo "Finding .txt OR .log files:"
find . \( -name "*.txt" -o -name "*.log" \)
# Clean up
rm file1.txt file2.log file3.md`find` dan `-exec` untuk Tindakan
Salah satu ciri find yang paling berkuasa ialah -exec, yang membolehkan anda menjalankan perintah pada setiap fail atau direktori yang ditemui.
-exec COMMAND {} \;: MenjalankanCOMMANDuntuk setiap item yang ditemui, dengan menggantikan{}dengan laluan item tersebut.\;menandakan penghujung perintah.-exec COMMAND {} +: MenjalankanCOMMANDsekali dengan semua item yang ditemui sebagai argumen. Lebih cekap untuk banyak fail.
#!/bin/bash
# Create some empty files
touch old_report.txt
touch current_data.log
touch temp_notes.txt
echo "Listing all .txt files found:"
find . -name "*.txt" -exec ls -l {} \;
# Clean up
rm old_report.txt current_data.log temp_notes.txtCabaran Carian Lanjutan
Anda perlu mencari semua fail .log yang lebih besar daripada 100KB dan diubah suai dalam tempoh 3 hari yang lalu, kemudian mencetak namanya.
Gabungan pilihan find yang manakah dapat mencapai perkara ini?
Ulang Kaji: Carian Tepat
Syabas! Kemahiran anda dalam mencari teks dan fail telah meningkat.
- Kita meneroka Ungkapan Nalar Lanjutan (ERE) dengan
grep -E, menggunakan+,?dan|untuk pemadanan corak yang lebih fleksibel. - Anda mempelajari cara menggunakan kriteria
findlanjutan seperti-mtime,-atimedan-size. - Kita juga membincangkan cara menggabungkan kriteria ini dengan logik AND/OR serta melakukan tindakan pada fail yang ditemui menggunakan pilihan
-execyang berkuasa.
Alat ini penting untuk pentadbiran sistem dan penskripan yang cekap!
Pelajari Penguasaan Baris Perintah Linux 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
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Corak Lanjutan `grep` dan `find`” percuma?
Ya — teks penuh “Corak Lanjutan `grep` dan `find`” 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, tingkat taraf kepada CoddyKit PRO. Kursus Penguasaan Baris Perintah Linux merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Corak Lanjutan `grep` dan `find`”?
Gunakan regex kompleks dengan `grep` dan kriteria lanjutan dengan `find` untuk carian yang tepat. Anda berlatih Penguasaan Baris Perintah Linux 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?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Penguasaan Baris Perintah Linux 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 “Corak Lanjutan `grep` dan `find`” 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 ini?
Ya. Setiap pelajaran Penguasaan Baris Perintah Linux 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
- Menguasai Ungkapan Nalar (Regex)
- Corak Lanjutan `grep` dan `find`
- `xargs` untuk Rantaian Perintah
- Penyuntingan Strim pada Skala Besar dengan sed dan tr