Dalam artikel ini, kami menunjukkan kepada anda untuk menjalankan pencarian rentetan lebih awal menggunakan Grep dengan ungkapan biasa dengan memberi anda 10 contoh langsung mengenai pelaksanaannya. Banyak contoh yang dibincangkan dalam artikel ini mempunyai implikasi praktikal yang bermaksud anda boleh menggunakannya dalam pengaturcaraan Linux harian anda. Sampel berikut menerangkan beberapa contoh regexp untuk corak yang biasa dicari.
Cth 1: Cari Piagam Tunggal dalam Fail Teks
Untuk mengeluarkan baris dalam fail 'buku' yang mengandungi watak '$', ketik:
buku $ grep '\ $'Cth 2: Cari rentetan tunggal dalam Fail Teks
Untuk mengeluarkan baris dalam fail 'buku' yang mengandungi rentetan '$ 14.99 ', taip:
$ grep '\ $ 14 \.Buku 99 'Cth 3: Cari Piagam Khas Tunggal dalam Fail Teks
Untuk mengeluarkan baris dalam fail 'buku' yang mengandungi watak '\', ketik:
buku $ grep '\\'Cth 4: Memadankan Garis Bermula dengan Teks Tertentu
Gunakan 'ˆ' dalam regexp untuk menunjukkan permulaan garis.
Untuk mengeluarkan semua baris dalam '/ usr /ict / words' bermula dengan 'pro', ketik:
$ grep 'ˆpro' / usr /ict / kataUntuk mengeluarkan semua baris dalam fail 'buku' yang dimulai dengan teks 'di awal', tanpa mengira kes, ketik:
$ grep -i 'ˆdalam permulaan' bukuNOTA: Regexps ini dipetik dengan 'watak; ini kerana beberapa cengkerang memperlakukan watak 'ˆ' sebagai "metacharacter" khas
Selain carian kata dan frasa, anda boleh menggunakan grep untuk mencari corak teks kompleks yang disebut ungkapan biasa. Ungkapan biasa-atau "regexp" -adalah rentetan teks watak khas yang menentukan a set corak untuk dipadankan.
Secara teknikal, corak kata atau frasa adalah ungkapan biasa - hanya sangat sederhana. Dalam ungkapan biasa, kebanyakan watak-termasuk huruf dan angka-mewakili diri mereka sendiri. Contohnya, corak regexp 1 sepadan dengan rentetan '1', dan corak budak lelaki sepadan dengan rentetan 'budak lelaki'.
Terdapat sebilangan watak terpelihara yang disebut metacharacters yang tidak mewakili diri mereka dalam ekspresi biasa, tetapi mereka mempunyai makna khusus yang digunakan untuk membangun pola yang kompleks. Metakarakter ini adalah seperti berikut: ., *, [, ], ˆ, $, dan \. Adalah baik untuk diperhatikan bahawa metakarakter seperti itu adalah biasa di antara hampir semua distribusi Linux biasa dan khas. Berikut adalah artikel yang baik yang merangkumi makna khas metacharacters dan memberikan contoh penggunaannya.
Cth 5: Memadankan Garis Berakhir dengan Teks Tertentu
Gunakan '$' sebagai watak terakhir teks yang dipetik untuk mencocokkan teks itu hanya pada akhir baris. Untuk mengeluarkan baris dalam fail 'pergi' yang diakhiri dengan tanda seru, ketik:
$ grep '!$ 'pergiCth 6: Garisan Padan dengan Panjang Tertentu
Untuk memadankan garis dengan panjang tertentu, gunakan bilangan '.'watak antara' ˆ 'dan' $ '- sebagai contoh, untuk mencocokkan semua baris yang mempunyai dua watak (atau lajur) lebar, gunakan' ˆ… $ 'sebagai regexp untuk mencari.
Untuk mengeluarkan semua baris dalam '/ usr /ict / words' dengan lebar tiga aksara, ketik:
$ grep 'ˆ ... $' / usr / dikte / perkataanUntuk garis yang lebih panjang, lebih berguna menggunakan konstruk yang berbeza: 'ˆ.\ number \ $ ', di mana nombor adalah bilangan baris yang sesuai. Gunakan ',' untuk menentukan julat nombor.
Untuk mengeluarkan semua baris dalam '/ usr /ict / words' dengan lebar dua belas aksara, ketik:
$ grep 'ˆ.\ 12 \ $ '/ usr /ict / kataUntuk mengeluarkan semua baris dalam '/ usr /ict / words' dengan lebar dua puluh dua atau lebih aksara, ketik:
$ grep 'ˆ.\ 22, \ $ '/ usr /ict / kataCth 7: Garis Padan yang Mengandungi Sebilangan Regexps
Untuk mencocokkan garis yang mengandungi sejumlah regexps, tentukan masing-masing regexps yang akan dicari antara operator gantian ('\ |') sebagai regexp untuk dicari. Garis yang mengandungi salah satu dari regexps yang diberikan akan dikeluarkan.
Untuk mengeluarkan semua baris dalam 'playboy' yang mengandungi corak 'buku' atau 'kek', ketik:
$ grep 'buku \ | kek' playboyCth 8: Garis Padan yang Mengandungi Semua Regexps
Untuk garis output yang sepadan semua daripada sebilangan regexps, gunakan grep ke garisan output yang mengandungi regexp pertama yang ingin anda padankan, dan masukkan output ke grep dengan regexp kedua sebagai argumen. Terus tambahkan paip ke carian grep untuk semua regexps yang anda ingin cari.
Untuk mengeluarkan semua baris dalam 'senarai main' yang mengandungi kedua-dua corak 'the shore' dan 'sky', tanpa mengira kes, ketik:
$ grep -i 'the shore' senarai main | grep -i langitCth 9: Garis Padan yang Hanya Mengandungi Karakter Tertentu
Untuk mencocokkan garis yang hanya mengandungi watak tertentu, gunakan regexp 'ˆ [karakter] * $', di mana aksara adalah yang sesuai. Untuk mengeluarkan baris dalam '/ usr /ict / words' yang hanya mengandungi vokal, ketik:
$ grep -i 'ˆ [aeiou] * $' / usr /ict / kataPilihan '-i' sepadan dengan watak tanpa mengira kes; jadi, dalam contoh ini, semua watak vokal dipadankan tanpa mengira kes.
Cth 10: Mencari Frasa Tanpa Mengira Jarak Jauh
Salah satu cara untuk mencari frasa yang mungkin berlaku dengan ruang tambahan antara kata-kata, atau melintasi garis atau jeda halaman, adalah dengan membuang semua umpan baris dan ruang tambahan dari input, dan kemudian tekan. Untuk melakukan ini, masukkan input ke tr dengan "\ r \ n: \> \ | -" sebagai argumen kepada pilihan '-d' (membuang semua jeda baris dari input); paipkan ke penapis fmt dengan pilihan '-u' (mengeluarkan teks dengan jarak seragam); dan paipkan yang sesuai dengan corak yang hendak dicari.
Untuk mencari rentetan baris untuk rentetan 'pada masa yang sama dengan' dalam fail 'docs', ketik:
$ cat dokumen | tr -d '\ r \ n: \> \ |-'| fmt -u | grep 'pada masa yang sama dengan'
Ringkasan
Dalam artikel ini, kami mengkaji 10 contoh praktikal menggunakan perintah Grep Linux untuk mencari dan mencari rentetan dalam fail teks. Sepanjang perjalanan, kami belajar bagaimana menggunakan ungkapan biasa bersama dengan Grep untuk melakukan carian kompleks pada fail teks. Sekarang anda mempunyai idea yang lebih baik mengenai seberapa kuat fungsi carian Linux.
Berikut adalah sumber tambahan bagi mereka yang berminat untuk mempelajari lebih lanjut mengenai pengaturcaraan Linux:
Sumber untuk Pentadbir Sistem
- Panduan Pentadbir Sistem Linux- Apa itu Sistem Operasi Linux dan bagaimana ia berfungsi
- Panduan Pentadbir Sistem Linux- Gambaran Keseluruhan Memori Maya Linux dan Cache Buffer Disk
- Panduan Pentadbir Sistem Linux- Amalan Terbaik untuk Memantau Sistem Linux
- Panduan Pentadbir Sistem Linux- Amalan Terbaik untuk Melakukan Boot dan Shutdown Linux
- Panduan Pentadbir Sistem Linux- Amalan Terbaik untuk Membuat dan Menguruskan Operasi Sandaran
Sumber untuk Pengaturcara Kernel Linux
- Bagaimana Pengurusan Memori Sistem Operasi Linux berfungsi
- Kajian Komprehensif Proses Sistem Kernel Linux
- Apa mekanisme di sebalik pengurusan tugas Linux Kernel
Kamus Sistem Fail Linux
Kajian Komprehensif Bagaimana Sistem Fail dan Direktori Linux Berfungsi