grep

Perintah grep Linux

Perintah grep Linux
Grep adalah salah satu alat paling mudah yang boleh anda miliki. Utiliti baris perintah ini melakukan carian dalam kumpulan data teks biasa. Grep sebenarnya merupakan singkatan dari “gmencari secara melobi a regular expression dan hlmberlari ”. Grep memulakan perjalanannya sebagai sebahagian daripada keluarga UNIX. Lama kelamaan, kini tersedia untuk semua platform popular seperti Linux, Mac, BSD, dan juga Windows!

Adakah anda pernah menggunakan grep sebelum ini? Selalunya, trik grep asas dapat melakukan sebahagian besar kerja. Walau bagaimanapun, grep menawarkan banyak cara untuk melakukan carian dan menyesuaikan output ke versi yang lebih berguna. Dalam artikel ini, mari kita periksa penggunaan perintah grep.

Penggunaan grep

Mengesahkan kewujudan

Sekiranya anda menjalankan apa-apa distro Linux, maka anda sudah memasang grep. Jalankan arahan berikut di terminal.

grep - penukaran

Perintah ini digunakan untuk menunjukkan versi grep yang sedang dipasang. Sekarang, kita memerlukan fail demo. Dalam kes saya, saya akan menghasilkan fail teks yang merangkumi semua pakej yang dipasang pada sistem saya.

Asas

Penggunaan asas grep mengikuti struktur berikut.

grep

Atau, untuk pemahaman yang lebih mudah, gunakan yang ini.

grep -e -f

Dalam kes ini, grep akan melakukan carian dalam fail dan mencetak semua baris yang merangkumi corak (istilah carian).

grep python ~ / Desktop / Senarai Pakej.txt

Grep mencari fail “PackageList.txt "Saya menghasilkan lebih awal dan mencetak semua baris yang merangkumi" python ".

Operasi yang sama ini dapat dilakukan dengan cara lain. Lihat contoh berikut.

kucing ~ / Desktop / Senarai Pakej.txt | grep python

Di sini, dengan menggunakan perintah "cat", saya mengirim isi fail "PackageList".txt ”ke grep. Dengan menggunakan output kucing, grep melakukan pencarian dan mencetak garis yang mengandungi istilah carian.

Sekarang datang perkara yang menyeronokkan. Anda benar-benar dapat mengumpulkan banyak perintah grep begitu sahaja.

kucing ~ / Desktop / Senarai Pakej.txt | grep - | grep p | grep python

Grep pertama menapis ke garis dengan tanda hubung, penapis kedua turun ke garisan dengan p, dan grep terakhir menapis ke garis dengan python. Masuk akal?

Kepekaan kes

Semasa melakukan carian, kepekaan kes adalah persoalan utama. Secara lalai, grep peka huruf besar kecil.

Contohnya, mencari "Python" tidak akan menunjukkan hasil.

kucing ~ / Desktop / Senarai Pakej.txt | grep Python

Untuk menjadikan kes grep "tidak sensitif", tambahkan pilihan berikut.

kucing ~ / Desktop / Senarai Pakej.txt | grep -i Python

Pencarian fail

Katakan anda mempunyai direktori dengan banyak fail teks. Tujuan anda adalah untuk mengenal pasti fail yang mengandungi atau tidak mengandungi corak (istilah carian).

Saya dapati kaedah ini cukup berguna ketika mencari di dalam timbunan fail log. Oleh kerana saya tidak mempunyai masa untuk membuka dan memeriksa setiap fail secara manual, saya mempunyai peluang untuk melakukan tugas untuk saya.

Untuk menyenaraikan fail yang mengandungi padanan, gunakan bendera "-l".

grep -l / cari / direktori / *

Seperti yang ditunjukkan oleh hasilnya, istilah "python" ada di semua 3 file yang ada di direktori "Desktop".

Untuk menyenaraikan fail tanpa sepadan, gunakan bendera "-L".

grep -L / cari / direktori / *

"Tidak setanding.txt "adalah satu-satunya fail yang tidak mengandungi istilah" python ".

Pencarian terbalik

Tingkah laku default grep adalah hanya mencetak garis dengan corak yang sepadan, betul? Sudah tiba masanya untuk membalikkan proses. Kali ini, kami hanya akan mencetak garis TANPA corak yang sepadan.

Cukup berikan pilihan "-v" ke grep.

kucing ~ / Desktop / Senarai Pakej.txt | grep -i -v Python

Mencetak garisan sebelum / selepas pertandingan

Secara lalai, grep hanya akan mencetak garis yang sesuai dengan corak carian. Dengan menggunakan teknik ini, anda dapat memberitahu grep untuk mencetak garisan sebelum / selepas pertandingan juga.

Untuk mencetak garisan sebelum pertandingan, gunakan struktur berikut.

grep -B

Di sini, 5 adalah garis nombor yang akan dicetak grep SEBELUM garis yang sepadan.

Untuk mencetak garisan selepas pertandingan, gunakan yang berikut.

grep -A

Bagaimana dengan mencetak sebelum dan selepas garis yang sepadan? Sekiranya demikian, gunakan bendera "-C".

grep -C

Nombor garisan

Apabila grep menunjukkan keluaran, ia tidak menyebut nombor garis. Untuk nombor baris yang berkaitan, gunakan bendera "-n".

grep -n

Satu perkataan

Sekiranya bendera "-w" digunakan, grep akan memperlakukan corak sebagai keseluruhan perkataan.

grep -w

Mengehadkan carian grep

Grep membolehkan menentukan bilangan baris untuk dicari dalam fail. Kaedah ini berguna jika anda berurusan dengan fail besar (seperti log sistem). Gunakan bendera "-m".

grep -m

Pencarian berulang

Ini adalah salah satu ciri yang paling berguna yang ditawarkan oleh grep untuk penggunaan berat. Grep boleh mencari direktori secara berulang dan mencari semua padanan dari semua fail yang dihadapinya.

grep -R

Atau,

grep -r

Saya sering menggunakan fungsi rekursif ini bersama dengan bendera "-l".

Mod senyap

Grep boleh dijalankan dalam mod "senyap". Ketika berjalan dalam mod "senyap", grep tidak akan mencetak sebarang output ke terminal. Sebaliknya, ia akan mengembalikan 0 (sekurang-kurangnya, perlawanan dijumpai) atau 1 (tidak ada perlawanan yang dijumpai).

grep -q
bergema $?

Regex

Grep juga membolehkan carian regex (ungkapan biasa). Ini menambah tahap kerumitan dan kegunaan grep yang baru sebagai alat carian.

Sebagai contoh, anda boleh menggunakan tanda kurung untuk mencari kedua-dua "juga" dan "dua" pada masa yang sama.

kucing ~ / Desktop / gpl-3.0.txt | grep t [wo] o

Contoh seterusnya ini hanya akan mencetak garis sekiranya perlawanan berlaku pada awal garis.

grep ^ GNU ~ / Desktop / gpl-3.0.txt

Untuk memadankan hujungnya, gunakan yang satu ini.

grep anda $ ~ / Desktop / gpl-3.0.txt

Sekiranya anda ingin menggunakan Perl regex, gunakan bendera "-P". Ia akan memperlakukan coraknya sebagai Perl regex.

grep -P

Pemikiran terakhir

Grep menawarkan banyak cara untuk menyesuaikan fungsi carian. Ketersediaan regex membuka cakrawala baru untuk potensi penggunaan grep. Yang menarik ialah, anda boleh menggunakan regex umum dan Perl; mana sahaja yang anda rasa selesa.

Untuk penjelasan yang paling terperinci, selalu lihat halaman manual.

lelaki grep

Sorakan!

OpenTTD vs Simutrans
Membuat simulasi pengangkutan anda sendiri boleh menyeronokkan, santai dan sangat menarik. Itulah sebabnya anda perlu memastikan bahawa anda mencuba s...
Tutorial OpenTTD
OpenTTD adalah salah satu permainan simulasi perniagaan yang paling popular di luar sana. Dalam permainan ini, anda perlu membuat perniagaan pengangku...
SuperTuxKart untuk Linux
SuperTuxKart adalah tajuk hebat yang direka untuk membawa anda pengalaman Mario Kart secara percuma pada sistem Linux anda. Ia cukup mencabar dan meny...