Cara Menggunakan Perintah Grep dalam Linux

Memahami arahan grep dengan contoh praktikal untuk menapis dan memaparkan kandungan fail dengan mudah

GREP bermaksud 'Cetak Ungkapan Biasa Global'. Ia adalah utiliti baris perintah berguna yang disediakan oleh Linux, untuk mencari baris teks yang sepadan dengan corak yang disediakan oleh pengguna.

grep mengambil input daripada pengguna dalam bentuk rentetan atau perkataan yang pengguna ingin cari dalam fail tertentu. Perintah itu kemudian menyemak fail yang ditentukan oleh pengguna untuk corak ini dan kemudian mengembalikan baris yang sepadan dengan corak yang disediakan.

Ia melakukan kerja yang sangat baik dengan menapis kandungan fail sekali gus menjadikan tugas kami lebih mudah untuk mencari kandungan tertentu pada satu atau berbilang fail serentak.

Dalam artikel ini, mari kita semak semula fungsi grep perintah dengan beberapa contoh praktikal secara terperinci.

Pilihan tersedia dengan grep perintah

Ini adalah beberapa pilihan asas yang anda akan gunakan dengan kerap dengan grep perintah.

PilihanPenerangan
-iUntuk carian yang tidak peka huruf besar-besaran
-rUntuk mencari secara rekursif semua fail dalam direktori yang ditentukan dan subdirektorinya
-cUntuk memaparkan jumlah bilangan kali rentetan muncul
-vUntuk memaparkan garisan tidak sepadan
-wTapis untuk perkataan tertentu yang digunakan secara berasingan

Menggunakan grep perintah

grep arahan biasanya digunakan dengan paip (|) utiliti. Ia boleh dilaksanakan dengan paip shell apabila anda ingin menggunakannya dengan beberapa arahan Linux yang lain. walaupun, grep juga boleh digunakan secara individu tanpa paip (|) utiliti.

Mari kita lihat beberapa sintaks asas grep arahan dengan dan tanpa utiliti paip.

Izinkan saya menunjukkan kepada anda contoh fail teks yang akan saya gunakan untuk menggambarkan grep perintah.

INDIA ADALAH NEGARA YANG CANTIK DENGAN RAKYAT YANG MENCINTAI KEAMANAN. India berdiri di atas tiga tonggak badan perundangan, eksekutif dan kehakiman. India Merupakan Negara Yang Indah Dengan Rakyat Penyayang Keamanan. India mengambil berat terhadap rakyat kerana ia adalah sumber cartesian menyelaras kepentingan semua koordinat kartesian ke-. Berikut adalah dua baris kosong. penggunaan kereta lembu adalah pemandangan biasa di kampung untuk kerja-kerja pertanian. Ini adalah penghujung fail sampel.

grep digunakan dengan paip ( | )utiliti

grep arahan boleh dilaksanakan bersama-sama dengan arahan Linux lain menggunakan paip shell. Seperti, menggunakan kucing arahan untuk memaparkan kandungan fail tetapi pada masa yang sama memaipkan output menggunakan grep arahan untuk memaparkan hanya kandungan yang anda ingin lihat. Ini akan menjadi lebih jelas apabila kita melalui contoh.

Sintaks:

[perintah] | grep [rentetan]

Contoh:

sampel kucing.txt | badan perundangan grep

Di sini, saya telah menggunakan kucing arahan untuk memaparkan beberapa baris daripada fail 'sample.txt'. Hanya baris tersebut yang akan dipaparkan yang mengandungi perkataan 'legislatif' di dalamnya dan mengabaikan baris yang lain.

Pengeluaran:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislative india berdiri di atas tiga tonggak badan perundangan, eksekutif dan kehakiman. gaurav@ubuntu:~/workspace$

grep digunakan tanpa paip ( | )utiliti

grep malah boleh digunakan secara langsung sebagai arahan individu tanpa menggunakan paip ( | ) utiliti.

Sintaks:

grep [rentetan_untuk_dicari] [nama fail]

Contoh:

grep India sample.txt

Pengeluaran:

India Merupakan Negara Yang Indah Dengan Rakyat Penyayang Keamanan. India mengambil berat terhadap rakyat kerana ia adalah sumber

Oleh itu, saya telah menggunakan grep arahan terus untuk menapis baris yang mengandungi rentetan 'India' daripada fail teks 'sample.txt'.

Carian tidak sensitif huruf besar menggunakan grep perintah

Linux sangat berhati-hati tentang kepekaan huruf besar-kecil apabila kami melancarkan arahan pada terminal. Ini memerlukan pengguna berhati-hati tentang kes rentetan yang dimasukkan ke dalam arahan.

Mari kita lihat ini melalui contoh.

grep peace sample.txt

Dalam kes ini, kami tidak akan mendapat output kerana tiada perkataan sebagai 'keamanan' dalam fail sampel. Kami mempunyai perkataan 'Peace' dengan huruf besar 'P'. Perkataannya sama tetapi apabila kita menggunakan grep arahan tanpa sebarang pilihan, ia mencari padanan tepat dalam fail, tanpa mengambil kira sebarang perubahan dalam kes surat.

Untuk mengelakkan kekaburan ini, anda hanya boleh menggunakan -i pilihan yang secara literal memberitahu grep perintah "lupakan tentang kes saya telah meletakkan rentetan, dan hanya cari semua corak yang sepadan dalam fail."

Sintaks:

grep -i [rentetan] [nama fail]

Contoh:

grep -i peace sample.txt

Pengeluaran:

INDIA ADALAH NEGARA YANG CANTIK DENGAN RAKYAT YANG MENCINTAI KEAMANAN. India Merupakan Negara Yang Indah Dengan Rakyat Penyayang Keamanan.

Semua baris padanan dipaparkan tanpa mengira kes di mana rentetan padanan adalah.

Carian rekursif menggunakan grep perintah

The -r pilihan akan mencari semua fail dalam direktori dan semua sub-direktorinya yang sepadan dengan corak rentetan yang disediakan oleh pengguna dalam arahan.

Sintaks:

grep -i -r [rentetan] [laluan_fail]

Contoh:

grep -i -r tomcat /home/gaurav/workspace

Rentetan di sini ialah 'tomcat' dan ia akan dicari dalam ruang kerja direktori. Semua subdirektori dan fail dalam direktori 'ruang kerja' juga akan diimbas untuk memadankan corak rentetan yang disediakan.

Pengeluaran:

./context_log.policy:// catalina.policy - Kebenaran Dasar Keselamatan untuk Tomcat 7 ./context_log.policy:// Nota: Jika tomcat-juli.jar berada dalam ${catalina.base} dan bukan dalam ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JARs ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - Common non-Tomcat JARs ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000 . /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

NOTA: Semasa menggunakan -r pilihan dengan grep perintah yang kita perlukan untuk menyediakan laluan fail dan bukan nama fail

Mencari seluruh perkataan hanya dengan grep perintah

Banyak kali kesnya ialah anda akan mencari satu perkataan tetapi anda akhirnya akan mengisi terminal anda dengan baris padanan yang mengandungi perkataan padanan anda tetapi bukan sebagai perkataan individu. Anda mungkin melihat baris yang mengandungi beberapa perkataan yang subbahagiannya ialah rentetan yang telah anda masukkan.

Keliru dengan ini? Jangan risau, lebih mudah untuk difahami sebaik sahaja anda mendapat contoh.

Contoh:

Di sini, saya ingin mencari perkataan individu 'cart' dan memaparkan semua baris yang sepadan dengan perkataan ini dalam fail 'sample.txt'.

grep -i cart sample.txt

Pengeluaran:

Koordinat Cartesian kepentingan semua koordinat Cartesian. penggunaan kereta lembu adalah pemandangan biasa di kampung untuk kerja-kerja pertanian. Pedati itu hilang kerana budak lelaki itu meninggalkannya.

Dalam output, anda boleh melihat bahawa perkataan 'Cartesian' juga mengandungi perkataan 'cartesian' dan oleh itu, baris yang mengandungi perkataan 'Cartesian' juga dipaparkan walaupun kita tidak mahu ia dipaparkan.

Anda boleh menggunakan -w pilihan dengan grep perintah untuk menyelesaikan kekaburan ini.

Sintaks:

grep -i -w [rentetan] [nama fail]

Contoh:

grep -i -w cart sample.txt

Pengeluaran:

penggunaan kereta lembu adalah pemandangan biasa di kampung untuk kerja-kerja pertanian. Kereta itu hilang apabila budak itu meninggalkannya. 

Sekarang, apabila anda telah menggunakan -w pilihan dengan grep anda akan mendapat hanya baris di mana perkataan 'kereta' digunakan secara keseluruhan.

Carian terbalik menggunakan grep perintah

grep arahan juga boleh digunakan secara terbalik. Kita boleh menggunakan grep perintah secara bertentangan dengan menyembunyikan baris yang sepadan dan hanya memaparkan garisan di mana padanan tidak dijumpai. Anda boleh melakukan ini menggunakan -v pilihan dengan grep perintah.

Sintaks:

grep -i -v [rentetan] [nama fail]

Contoh:

sampel sumber grep -i -v.txt

Pengeluaran:

INDIA ADALAH NEGARA YANG CANTIK DENGAN RAKYAT YANG MENCINTAI KEAMANAN. India berdiri di atas tiga tonggak badan perundangan, eksekutif dan kehakiman. India Merupakan Negara Yang Indah Dengan Rakyat Penyayang Keamanan. koordinat kartesian kepentingan semua koordinat kartesian ke. penggunaan kereta lembu adalah pemandangan biasa di kampung untuk kerja-kerja pertanian. Ini adalah penghujung fail sampel.

Dalam output, semua baris lain dipaparkan selain daripada baris yang mengandungi perkataan 'sumber'.

Mengira kejadian rentetan padanan

Keluaran daripada grep arahan biasanya sangat panjang jika data dalam fail adalah luas. Lebih banyak padanan, lebih lama adalah output grep perintah. Linux memberikan anda pilihan di mana anda boleh memaparkan bilangan kejadian perlawanan.

Sintaks:

grep -i -c [rentetan] [nama fail]

Contoh:

grep -i -c india sample.txt

Pengeluaran:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Di sini, output ialah nombor yang merupakan bilangan kemunculan perkataan 'India' dalam fail sample.txt.

NOTA: Saya telah menggunakan -i pilihan dalam setiap contoh untuk hanya selamat dengan isu sensitiviti kes. Sekiranya anda pasti tentang kes perkataan yang anda cari, maka anda boleh meninggalkannya dengan selamat -i pilihan.

Kesimpulan

Kami telah mempelajari kegunaan asas grep arahan pada sistem Linux dalam tutorial ini. Kami juga belajar untuk memaparkan pelbagai kandungan yang paling sesuai dengan keperluan kami dan tidak menyesakkan terminal dengan banyak barisan. grep arahan pasti akan menjadi penjimat masa jika digunakan untuk mengimbas set data yang besar.