Memahami arahan grep dengan contoh praktikal untuk menapis dan memaparkan kandungan fail dengan mudah
GREP
bermaksud 'Cetakan 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 fungsi grep
arahan dengan beberapa contoh praktikal secara terperinci.
Pilihan tersedia dengan grep
arahan
Ini adalah beberapa pilihan asas yang akan anda gunakan dengan kerap dengan grep
arahan.
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
arahan
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
boleh juga digunakan secara individu tanpa |
utiliti paip ( ).
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
arahan tersebut.
INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
cartesian coordinates
importance of all th cartesian coordinates.
Following are two empty lines.
use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.
grep
digunakan dengan paip ( | ) utiliti
grep
arahan boleh dilaksanakan bersama-sama dengan arahan Linux lain menggunakan paip shell. Seperti, menggunakan cat
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 :
[command] | grep [string]
Contoh :
cat sample.txt | grep legislature
Di sini, saya telah menggunakan cat
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.
Output :
[email protected]:~/workspace$ cat sample.txt | grep legislature
india stands on three pillars of legislature, executive and judiciary.
[email protected]:~/workspace$
grep
digunakan tanpa paip ( | ) utiliti
grep
malah boleh digunakan secara langsung sebagai arahan individu tanpa menggunakan |
utiliti paip ( ).
Sintaks :
grep [string_to_be_searched] [filename]
Contoh :
grep India sample.txt
Output :
India Is a Beautiful Country Of Peace Loving People.
India cares for the people as it's resource
Oleh itu, saya telah menggunakan grep
arahan terus untuk menapis baris yang mengandungi rentetan 'India' daripada fail teks 'sample.txt'.
Carian tidak peka huruf besar-besaran menggunakan grep
arahan
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'. Perkataan adalah sama tetapi apabila kita menggunakan grep
arahan tanpa sebarang pilihan, ia mencari padanan tepat dalam fail, tanpa mengambil kira sebarang perubahan dalam huruf besar.
Untuk mengelakkan kekaburan ini, anda hanya boleh menggunakan -i
pilihan yang secara literal memberitahu grep
arahan "lupakan tentang kes yang saya telah masukkan rentetan, dan hanya cari semua corak padanan dalam fail."
Sintaks:
grep -i [string] [filename]
Contoh :
grep -i peace sample.txt
Output :
INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
India Is a Beautiful Country Of Peace Loving People.
Semua baris padanan dipaparkan tanpa mengira kes di mana rentetan padanan adalah.
Carian rekursif menggunakan grep
arahan
The -r
pilihan akan mencari semua fail-fail dalam direktori dan semua subdirektorinya paling sepadan dengan corak tali yang diberikan oleh pengguna dalam arahan.
Sintaks :
grep -i -r [string] [file_path]
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.
Output :
./context_log.policy:// catalina.policy - Security Policy Permissions for Tomcat 7
./context_log.policy:// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${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:
./tomcat-users.xml:
./tomcat-users.xml:
./web.xml:
./web.xml:
NOTA : Semasa menggunakan -r
pilihan dengan grep
arahan, kami perlu menyediakan laluan fail dan bukan nama fail
Mencari seluruh perkataan hanya dengan grep
arahan
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, ia lebih mudah untuk difahami sebaik sahaja anda mendapat contoh.
Contoh :
Di sini, saya ingin mencari perkataan 'cart' individu dan memaparkan semua baris yang sepadan dengan perkataan ini dalam fail 'sample.txt'.
grep -i cart sample.txt
Output :
Cartesian coordinates
importance of all the Cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores
The cart went missing as the boy left it loose.
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
arahan untuk menyelesaikan kekaburan ini.
Sintaks :
grep -i -w [string] [filename]
Contoh :
grep -i -w cart sample.txt
Output :
use of a bullock cart is a common sight in the village for the agrarian chores.
The cart went missing as the boy left it loose.
Sekarang, apabila anda telah menggunakan w
pilihan – dengan grep
anda hanya akan mendapat baris di mana perkataan 'cart' digunakan secara keseluruhan.
Carian terbalik menggunakan grep
arahan
grep
arahan juga boleh digunakan secara terbalik. Kita boleh menggunakan grep
arahan 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
arahan.
Sintaks :
grep -i -v [string] [filename]
Contoh :
grep -i -v resource sample.txt
Output :
INDIA IS A BEAUTIFUL COUNTRY OF PEACE LOVING PEOPLE.
india stands on three pillars of legislature, executive and judiciary.
India Is a Beautiful Country Of Peace Loving People.
cartesian coordinates
importance of all th cartesian coordinates.
use of a bullock cart is a common sight in the village for the agrarian chores.
This is the end of the sample file.
Dalam output, semua baris lain dipaparkan selain daripada baris yang mengandungi perkataan 'sumber'.
Mengira kejadian rentetan padanan
Output grep
arahan biasanya sangat panjang jika data dalam fail adalah luas. Lebih banyak padanan, lebih lama output grep
arahan. Linux memberikan anda pilihan di mana anda boleh memaparkan bilangan kejadian perlawanan.
Sintaks :
grep -i -c [string] [filename]
Contoh :
grep -i -c india sample.txt
Output :
[email protected]:~/workspace$ grep -i -c india sample.txt
4
[email protected]:~/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 meninggalkan -i
pilihan dengan selamat .
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.