Perintah Grep di Linux

Grep Command Linux



Perintah Grep (cetakan ungkapan biasa global) adalah utiliti baris perintah Linux yang paling kuat dan kerap digunakan. Dengan menggunakan Grep, anda boleh mencari maklumat berguna dengan menentukan kriteria carian. Ia mencari corak ekspresi tertentu dalam fail yang ditentukan. Apabila menemui padanan, ia mencetak semua baris fail yang sesuai dengan corak yang ditentukan. Ia sangat berguna apabila anda perlu menapis fail log yang besar.

Dalam artikel ini, kami akan menerangkan penggunaan grep utiliti dengan contoh yang berbeza. Kami akan menggunakan Debian 10 untuk menjelaskan perintah dan kaedah yang disebutkan dalam artikel ini.







Memasang Grep

Grep dipasang di sebahagian besar pengedaran Linux. Tetapi sekiranya tidak ada di sistem anda, anda boleh memasangnya menggunakan kaedah berikut di Terminal:



$sudo pasang-dapatkan cengkaman

Menggunakan Grep

Berikut adalah sintaks asas perintah grep. Ia bermula dengan grep diikuti oleh beberapa pilihan dan kriteria carian dan kemudian diakhiri dengan nama fail.



$cengkaman [pilihan]CORAK[FILE ...]

Cari fail

Untuk mencari nama fail dalam direktori yang mengandungi rentetan tertentu di dalamnya, anda dapat menggunakan grep dengan cara berikut:





$ls -tempat | cengkaman -itali

Sebagai contoh, untuk mencari nama fail yang mengandungi rentetan ujian , arahannya adalah:

$ls-tempat| cengkaman–Iujian

Perintah ini menyenaraikan semua fail yang mengandungi rentetan ujian .



Cari rentetan dalam fail

Untuk mencari rentetan dalam fail tertentu, anda boleh menggunakan sintaks perintah berikut:

$cengkamannama fail rentetan

Contohnya, untuk mencari rentetan ujian dalam fail bernama fail ujian1 , kami telah menggunakan arahan berikut :

$cengkamanfail ujian pekerja1

Keluaran di atas telah mengembalikan ayat dari fail ujian1 yang mengandungi rentetan pekerja .

Cari rentetan dalam beberapa fail

Untuk mencari rentetan dalam beberapa fail, anda boleh menggunakan sintaks perintah berikut:

$cengkamanrentetan nama fail1 nama fail2

Sebagai contoh, untuk mencari pekerja rentetan dalam dua fail kami testfile1 dan testfile2, kami telah menggunakan perintah berikut:

$cengkamantestfile pekerja1 testfile2

Perintah di atas akan menyenaraikan semua baris yang mengandungi pekerja rentetan dari kedua-dua fail testfile1 dan testfile2.

Anda juga boleh menggunakan watak wildcard jika semua nama fail bermula dengan teks yang sama.

$cengkamannama fail rentetan*

Seperti, jika kita mengambil contoh di atas di mana nama fail kami berada testfile1 dan testfile2 , arahannya adalah:

$cengkamanfail ujian pekerja*

Cari rentetan dalam fail dengan mengabaikan huruf besar

Selalunya, anda pernah menjumpainya semasa anda mencari sesuatu menggunakan grep tetapi tidak mendapat output. Ini berlaku kerana kes tidak sepadan semasa mencari rentetan. Seperti dalam contoh kita, jika kita salah menggunakan Pekerja bukannya pekerja , ia akan mengembalikan nihil kerana fail kami mengandungi rentetan pekerja dengan huruf kecil.

Anda boleh memberitahu grep untuk mengabaikan kes string carian dengan menggunakan –i bendera selepas grep seperti berikut:

$cengkaman–I nama fail rentetan

Dengan menggunakan bendera –i, perintah akan melakukan pencarian huruf besar-kecil dan tidak akan mengembalikan semua baris yang mengandungi rentetan pekerja di dalamnya tanpa mengambil kira huruf berada dalam huruf besar atau huruf kecil.

Cari menggunakan ungkapan biasa

Sekiranya digunakan dengan betul, ungkapan biasa adalah ciri yang sangat berkesan dalam grep. Dengan perintah Grep, anda boleh menentukan ungkapan biasa dengan kata kunci permulaan dan akhir. Dengan berbuat demikian, anda tidak perlu menaip keseluruhan baris dengan perintah grep. Sintaks berikut boleh digunakan untuk tujuan ini.

$cengkamankata kunci permulaan.*menamatkan nama fail Kata kunci

Sebagai contoh, untuk mencari baris dalam file bernama testfile1 yang dimulai dengan string ini dan berakhir dengan data string, kami telah menggunakan perintah berikut:

$cengkamanini.*data ujian data1

Ia akan mencetak keseluruhan baris dari fail ujian1 mengandungi ungkapan (kata kunci permulaan ini dan data kata kunci akhir).

Cetak bilangan baris tertentu selepas / sebelum rentetan carian

Anda juga dapat memaparkan jumlah baris tertentu dalam fail sebelum / sesudah rentetan rentetan dengan rentetan yang dipadankan itu sendiri. Sintaks berikut boleh digunakan untuk tujuan ini:

$cengkaman -TO <N>nama fail rentetan

Ia akan memaparkan bilangan baris N setelah tali dipadankan dalam fail yang ditentukan termasuk tali yang dipadankan.

Contohnya, ini adalah fail contoh yang dinamakan testfile2 .

Perintah berikut akan mengeluarkan baris yang sesuai yang mengandungi rentetan pekerja , bersama dengan 2 baris selepasnya.

$cengkaman-TO2–File ujian pekerja2

Begitu juga, untuk memaparkan bilangan baris N sebelum rentetan yang dipadankan dalam fail tertentu, gunakan sintaks berikut:

$cengkaman -B <N>nama fail rentetan

Untuk memaparkan bilangan baris N di sekitar rentetan dalam fail tertentu, gunakan sintaks berikut:

$cengkaman -C <N>nama fail rentetan

Menonjolkan carian

Grep secara garis lurus mencetak dipadankan tetapi tidak menunjukkan bahagian garis mana yang dipadankan. Sekiranya anda menggunakan pilihan warna dengan grep, ia akan menunjukkan di mana rentetan pemesinan muncul dalam fail anda. Grep secara lalai menggunakan warna merah untuk menyerlahkan.

Sintaks berikut boleh digunakan untuk tujuan ini:

$cengkamannama fail rentetan--warna

Mengira jumlah pertandingan

Sekiranya anda ingin mengira berapa kali kata tertentu muncul dalam fail tertentu, anda boleh menggunakan pilihan grep dengan –c. Ia hanya mengembalikan jumlah perlawanan dan bukannya perlawanan itu sendiri. Sintaks berikut boleh digunakan untuk tujuan ini:

$cengkaman–Cama nama fail rentetan

Ini adalah contoh fail kami:

Berikut adalah contoh arahan yang mengembalikan berapa kali perkataan tersebut fail muncul dalam fail bernama fail ujian3 .

Pencarian terbalik

Kadang-kadang, anda mahu melakukan carian terbalik yang memaparkan semua baris kecuali yang sesuai dengan input. Untuk melakukannya, cukup gunakan bendera –v diikuti dengan grep:

$cengkaman-V nama fail rentetan

Sebagai contoh, untuk memaparkan semua baris dalam fail fail ujian3 yang tidak mengandungi kata akaun di dalamnya, kami telah menggunakan perintah berikut:

$cengkaman–File testfile akaun3

Menggunakan Grep dengan arahan lain

Grep juga dapat digunakan untuk menyaring hasil yang diperlukan dari output perintah yang berbeza. Contohnya, dari senarai apt yang dipasang output perintah, anda hanya ingin mencari pakej yang dipasang secara automatik, anda boleh menyaring hasilnya menggunakan grep seperti berikut:

$tepat- dipasangsenarai| cengkamanautomatik

Begitu juga, lscpu memberikan maklumat terperinci mengenai CPU. Sekiranya anda hanya berminat dengan maklumat mengenai seni bina CPU, anda boleh menyaringnya menggunakan perintah berikut:

$lscpu| cengkamanSenibina

Dalam artikel ini, kami telah menerangkan beberapa contoh yang akan membantu anda dalam memahami perintah grep dan penggunaannya dalam keadaan yang berbeza. Mempunyai pegangan yang kuat pada perintah grep dapat menjimatkan banyak masa jika anda perlu melihat konfigurasi besar atau fail log dan melangkau maklumat berguna melaluinya.