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.
grepAtau, untuk pemahaman yang lebih mudah, gunakan yang ini.
grepDalam 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
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
"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 -RAtau,
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 -qbergema $?
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 -PPemikiran 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!