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.
Pilihan | Penerangan |
-i | Untuk carian yang tidak peka huruf besar-besaran |
-r | Untuk mencari secara rekursif semua fail dalam direktori yang ditentukan dan subdirektorinya |
-c | Untuk memaparkan jumlah bilangan kali rentetan muncul |
-v | Untuk memaparkan garisan tidak sepadan |
-w | Tapis 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.