Contoh 1: Mencari rentetan tertentu dalam fail
Ini adalah penggunaan perintah egrep yang paling biasa. Apa yang anda buat ialah anda menentukan rentetan yang ingin anda cari, dan nama fail yang ingin anda cari rentetan itu di. Hasilnya kemudian memaparkan keseluruhan baris yang mengandungi rentetan yang dicari.
Sintaks:
$ namarerep "search_string" nama failContoh:
Contoh contoh debian $ egrep.txtDalam contoh ini, saya mencari perkataan "debian" dalam fail teks yang ditentukan. Anda dapat melihat bagaimana hasilnya memaparkan keseluruhan baris yang mengandungi kata "debian":
Contoh 2: Mencari rentetan tertentu dalam beberapa fail
Dengan perintah egrep, anda boleh mencari rentetan di antara beberapa fail yang berada di direktori yang sama. Anda hanya perlu sedikit lebih spesifik dalam menyediakan "pola" untuk fail yang dicari. Ini akan menjadi lebih jelas dengan contoh yang akan kami sampaikan.
Sintaks:
$ egrep "search_string" nama fail_patternContoh:
Di sini, kita akan mencari perkataan "debian" di semua .fail txt dengan menentukan corak nama fail seperti berikut:
$ egrep "debian" *.txt
Perintah telah mencetak semua baris, bersama dengan nama fail yang mengandungi kata "debian" dari semua .fail txt dalam direktori semasa.
Contoh 3: Mencari rentetan secara berulang di seluruh direktori
Apabila anda ingin mencari rentetan dalam semua fail dari direktori dan subdirektorinya, anda boleh melakukannya dengan menggunakan bendera -r dengan perintah egrep.
Sintaks:
$ egrep -r "search_string" *Contoh:
Dalam contoh ini, saya mencari kata "sampel" dalam fail dari keseluruhan direktori (Muat turun) semasa.
$ egrep -r "sampel" *
Hasilnya berisi semua baris, bersama dengan nama file, yang berisi kata "sampel" dari semua file dalam direktori Unduhan, dan sub direktori.
Contoh 4: Melakukan carian tanpa huruf besar-kecil
Dengan bendera -i, anda dapat menggunakan perintah egrep untuk mencetak hasil berdasarkan rentetan carian tanpa perlu bimbang tentang kasusnya.
Sintaks:
$ namarerep -i "search_string" nama failContoh:
Di sini, saya mencari kata "debian" dan saya mahukan hasilnya memaparkan semua baris dari fail yang mengandungi perkataan "debian" atau "Debian, tanpa mengira kasusnya.
$ namarerep -i "search_string" nama fail
Anda dapat melihat bagaimana bendera -i membantu saya mengambil semua baris yang mengandungi rentetan carian melalui carian kes "tidak sensitif".
Contoh 5: Mencari rentetan sebagai kata penuh dan bukan sebagai sub-rentetan
Apabila anda biasanya mencari rentetan melalui egrep, ia mencetak semua perkataan yang mengandungi rentetan sebagai sub-rentetan. Sebagai contoh, mencari rentetan "on" akan mencetak semua kata yang mengandungi string "on" seperti "on", "only", "monitor", "clone", dll. Sekiranya anda mahukan hasilnya hanya menampilkan kata "on" sebagai kata penuh dan bukan sebagai sub-string, anda boleh menggunakan bendera -w dengan egrep.
Sintaks:
$ namarerep -w "search_string" nama failContoh:
Di sini saya mencari rentetan "on" dalam contoh fail:
$ egrep -i "on" samplefile.txt
Anda dapat melihat pada output di atas, ia juga mengandungi kata "hanya". Namun, ini bukan yang saya mahukan kerana saya secara eksklusif mencari perkataan "on". Jadi, ini adalah arahan yang akan saya gunakan:
$ egrep -iw "on" samplefile.txt
Sekarang hasil carian saya hanya merangkumi baris yang mengandungi kata "on" secara keseluruhan.
Contoh 6: Mencetak hanya nama fail yang mengandungi rentetan
Kadang-kadang kita hanya mahu mengambil nama fail yang mengandungi rentetan tertentu, dan bukannya mencetak baris yang mengandunginya. Ini dapat dilakukan dengan menggunakan bendera -l (huruf kecil L) dengan perintah egrep.
Sintaks:
$ egrep -l "search_string" nama fail_patternContoh:
Di sini saya mencari rentetan "sampel" di semua .fail txt dalam direktori semasa:
$ egrep -l sampel *.txt
Hasil carian hanya mencetak nama fail yang mengandungi rentetan yang ditentukan.
Contoh 7: Mencetak hanya rentetan carian dari fail
Daripada mencetak keseluruhan baris yang mengandungi rentetan carian, anda boleh menggunakan perintah egrep untuk mencetak rentetan itu sendiri. Rentetan itu akan dicetak berapa kali ia muncul dalam fail yang ditentukan.
Sintaks:
$ namarerep -o "search_string" nama failContoh:
Dalam contoh ini, saya mencari perkataan "Ini" dalam fail saya.
$ egrep -o Sampel ini_.txt
Catatan: Penggunaan perintah ini sangat berguna ketika anda mencari rentetan berdasarkan corak ekspresi biasa. Kami akan menerangkan ungkapan biasa secara terperinci dalam salah satu contoh yang akan datang.
Contoh 8: Memaparkan bilangan baris sebelum, selepas, atau di sekitar rentetan carian
Kadang-kadang sangat penting untuk mengetahui konteks dalam fail di mana rentetan tertentu digunakan. The egrep sangat berguna dalam arti bahawa ia dapat digunakan untuk menampilkan garis yang mengandungi rentetan pencarian dan juga sejumlah garis tertentu sebelum, sesudah dan mengelilinginya.
Ini adalah contoh fail teks yang akan saya gunakan untuk menerangkan contoh yang akan datang:
N bilangan baris Selepas rentetan carian:
Menggunakan bendera A dengan cara berikut akan memaparkan garis yang mengandungi rentetan carian dan N bilangan baris setelahnya:
$ egrep -AContoh:
$ egrep -A 2 "sample" samplefile.txt
N bilangan baris Sebelum rentetan carian:
Menggunakan bendera B dengan cara berikut akan memaparkan garis yang mengandungi rentetan carian dan N bilangan baris sebelum itu:
$ egrep -BContoh:
$ egrep -B 2 "sample" samplefile.txt
N bilangan baris Sebelum rentetan carian:
Menggunakan bendera C dengan cara berikut akan memaparkan garis yang mengandungi rentetan carian, dan N bilangan baris sebelum dan sesudahnya:
$ egrep -CContoh:
$ egrep -C 2 "sample" samplefile.txt
Contoh 9: Memadankan ungkapan biasa dalam fail
Perintah egrep menjadi lebih kuat semasa anda mencari ungkapan biasa dan bukannya rentetan carian padat dalam fail.
Sintaks:
$ namarerep "RegularExpressions" nama failMari kami jelaskan bagaimana anda boleh menggunakan Ungkapan Biasa dalam carian egrep anda:
Pengendali pengulangan | Gunakan |
? | Item sebelumnya sebelum ini ? adalah pilihan dan dipadankan maksimum satu kali
|
* | Item sebelumnya sebelum * akan dipadankan sifar atau lebih banyak kali |
+ | Item sebelumnya sebelum + akan dipadankan satu atau beberapa kali |
n | Item sebelumnya dipadankan dengan tepat n beberapa kali. |
n, | Item sebelumnya dipadankan n atau lebih banyak kali |
, m | Item sebelumnya dipadankan dengan maksimum m kali |
n, m | Item sebelumnya dipadankan sekurang-kurangnya n kali tetapi tidak lebih daripada m kali |
Contoh:
Dalam contoh berikut, garis yang mengandungi ungkapan berikut dipadankan:
bermula dengan "Gnome" dan berakhir pada "program"
Contoh 10: Menyerlahkan rentetan carian
Apabila anda menetapkan pemboleh ubah persekitaran GREP_OPTIONS seperti di bawah, anda mendapat output dengan rentetan / corak carian yang diserlahkan dalam hasil:
$ sudo eksport GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'Anda kemudian boleh mencari rentetan dengan cara yang telah kami jelaskan dalam contoh artikel ini.
Contoh 11: Melakukan carian Balik dalam fail
Dengan carian terbalik, kami bermaksud bahawa perintah egrep mencetak semua yang ada dalam fail, kecuali baris yang mengandungi rentetan carian. Kami akan menggunakan contoh fail berikut untuk menjelaskan carian terbalik melalui egrep. Kami telah mencetak kandungan fail menggunakan arahan kucing:
Sintaks:
$ namarerep -v "search_string" nama failContoh:
Dari contoh fail yang kami sebutkan, kami ingin menghilangkan baris yang mengandungi kata "dua" dalam output, oleh itu kami akan menggunakan perintah berikut:
$ egrep -v "dua" samplefile_.txt
Anda dapat melihat bagaimana outputnya mengandungi segala-galanya dari contoh fail kecuali baris kedua yang mengandungi rentetan carian "dua".
Contoh 12: Melakukan carian terbalik berdasarkan pelbagai kriteria / corak carian
Dengan bendera -v, anda juga dapat membuat perintah egrep untuk melakukan carian terbalik berdasarkan lebih dari satu rentetan / corak carian.
Kami akan menggunakan fail contoh yang sama seperti yang kami sebutkan dalam contoh 11 untuk menjelaskan senario ini.
Sintaks:
$ egrep -v -e "search_string" / "pattern" -e "search_string" / "corak"… nama fail
Contoh:
Dari contoh fail yang kami sebutkan, kami ingin menghilangkan baris yang mengandungi kata "satu" dan "dua" dalam output, oleh itu kami akan menggunakan perintah berikut:
$ egrep -v -e "satu" -e "dua" samplefile_.txtKami telah memberikan dua perkataan untuk menghilangkan menggunakan bendera -e, oleh itu output akan muncul seperti berikut:
Contoh 13: Mencetak bilangan baris yang sepadan dengan rentetan carian
Daripada mencetak rentetan yang dicari dari fail atau garis yang ada di dalamnya, anda boleh menggunakan perintah egrep untuk menghitung dan mencetak jumlah baris yang sesuai dengan rentetan. Kiraan ini dapat diambil menggunakan bendera -c dengan perintah egrep.
Sintaks:
$ namarerep -c "search_string" nama failContoh:
Dalam contoh ini, kami akan menggunakan bendera -c untuk menghitung jumlah baris yang mengandungi kata "Ini" dalam fail sampel kami:
$ namarerep -c "Ini" nama fail
Anda juga boleh menggunakan ciri carian terbalik di sini untuk menghitung dan mencetak bilangan baris yang tidak mengandungi rentetan carian:
nama fail $ grep -v -c "search_string"
Contoh 14: Memaparkan nombor garis di mana rentetan dipadankan
Dengan bendera -n, anda boleh membuat perintah egrep untuk mencetak garis yang dipadankan bersama dengan nombor garis yang mengandungi rentetan carian.
Sintaks:
$ nama grep -n "search_string"Contoh:
$ grep -n "Ini" samplefile_.txt
Anda dapat melihat bagaimana nombor baris dipaparkan terhadap hasil carian.
Contoh 15: Memaparkan kedudukan dalam fail yang sesuai dengan rentetan carian
Sekiranya anda ingin mengetahui kedudukan dalam fail di mana rentetan carian ada, anda boleh menggunakan bendera -b dengan perintah egrep.
nama fail $ grep -o -b "search_string"Contoh:
$ grep -o -b "Ini" samplefile_.txt
Hasil carian mencetak byset ofte fail di mana kata carian ada.Ini adalah penggunaan terperinci dari perintah egrep. Dengan menggunakan kombinasi bendera yang dijelaskan dalam artikel ini, anda dapat melakukan pencarian yang lebih bermakna dan kompleks pada fail anda.