Perintah Grep: alat hebat untuk mencari teks dari Terminal

Perintah Grep

Hampir semua orang yang mempunyai komputer atau bekerja dengan seseorang akan mengetahui pintasan papan kekunci Ctrl + F untuk mencari teks. "F" adalah singkatan dari "Find", "to find" dalam bahasa Inggeris, dan dapat digunakan, misalnya, untuk mencari teks di halaman web. Jalan pintas ini juga tersedia di banyak aplikasi, ada program yang menggunakan Pencarian "B" untuk ", tetapi jalan pintas ini hanya berfungsi jika kita berada di dalam aplikasi dan dengan file yang terbuka. Di Linux kami mempunyai alat yang sangat kuat yang dapat kami lancarkan dari Terminal dan jika kami mahu cari teks yang ada dalam pasukan kami, kami akan menggunakan arahan grep.

grep Ini adalah perintah yang akan membantu kita mencari teks dalam fail yang kita nyatakan. Namanya berasal dari g / re / p, perintah yang berfungsi untuk sesuatu yang serupa dalam penyunting teks Unix / Linux. Seperti banyak arahan lain, grep Ada banyak ada pilihan yang akan kami tambahkan dalam bentuk huruf dan masing-masing akan menjalankan tugas yang berbeza. Dengan menggabungkan pilihan ini, kita akan dapat melakukan pencarian yang kompleks dalam satu atau lebih fail. Di sini kami menunjukkan kepada anda semua yang perlu anda ketahui.

dengan grep kami akan menemui teks dalam fail apa pun

Pertama sekali kami akan menerangkan pilihan yang ada:

  • -i: tidak akan membezakan antara huruf besar dan kecil.
  • -w: memaksanya untuk hanya mencari kata-kata tertentu.
  • -v: memilih garis yang tidak sepadan.
  • -n: menunjukkan bilangan baris dengan perkataan yang diminta.
  • -h: membuang awalan dari nama fail Unix dalam output.
  • -r: mencari direktori secara berulang.
  • -R: suka -r tetapi ikuti semua pautan simbolik.
  • -l: hanya menunjukkan nama fail dengan baris yang dipilih.
  • -c- Menunjukkan hanya satu kiraan setiap fail baris yang dipilih.
  • -Warna: Memaparkan corak yang sesuai dengan warna.

Dalam gambar yang anda tuju pada artikel ini, saya telah mencari kata "Imej" dalam fail "830.desktop" yang berada di jalan itu. Seperti yang anda lihat, saya telah menulis:

grep Imágenes /home/pablinux/Documentos/830.desktop

Perlu diingat bahawa dalam artikel ini kita akan menulis contoh yang mesti diubah suai mengikut pilihan carian kita. Dengan mengatakan "File", "Word", dan lain-lain, kita akan merujuk kepada fail dengan jalannya. Sekiranya saya baru sahaja menulis "grep Images 830.desktop" saya akan menerima mesej yang mengatakan bahawa fail tersebut tidak wujud. Atau demikian, kecuali jika fail tersebut berada di direktori root.

Contoh lain ialah:

  • grep -i images /home/pablinux/Documentos/830.desktop, di mana "gambar" adalah perkataan yang ingin kita cari dan selebihnya fail dengan jalannya. Contoh ini akan mencari "gambar" dalam kes "830.desktop" fail yang tidak sensitif.
  • grep -R gambar: ia akan mencari semua baris direktori dan semua subdirektori di mana perkataan "gambar" dijumpai.
  • grep -c contoh ujian.txt: ini akan mencari kita dan menunjukkan berapa kali "contoh" muncul dalam fail bernama "test.txt.

Dengan grep kita juga boleh mencari fail

Sekiranya yang kita mahukan adalah mencari fail 830.desktop, kita akan menulis arahan berikut:

grep 830.desktop

Ini akan melaksanakan a cari fail «830.desktop» di folder peribadi kamiMaksudnya, jika fail tersebut berada di folder peribadi pengguna lain, ia tidak akan dijumpai. Ini adalah perkara yang paling biasa di dunia kerana pengguna tidak mempunyai kebenaran untuk mengakses kandungan orang lain tanpa kata laluan mereka.

Cara melakukan carian rekursif

grep ia juga membolehkan kita melakukan carian tertakluk kepada peraturan atau garis panduan berulang. Sebagai contoh, baca semua fail di setiap direktori yang mengandungi perkataan "Pablinux". Untuk ini kami akan menulis:

grep -r Pablinux /home/

Wahai:

grep -R Pablinux /home/

Kami akan melihat hasil untuk "Pablinux" pada baris berasingan yang didahului dengan nama fail di mana ia dijumpai. Sekiranya kita tidak mahu melihat nama file dalam output data kita akan menggunakan pilihan -h (dari "hide"; hide):

grep -h -R Pablinux /home/

Kita boleh menyertai pilihan dan menulis "-hR" tanpa tanda petik.

Cara melakukan carian kata yang tepat

Kadang-kadang ada fail yang mengandungi perkara yang ingin kita cari untuk perkara lain. Sebagai contoh, ini boleh berlaku kepada kita dengan kata majmuk dan dengan mencari "hutan" kita dapat menemui "ranger". Sekiranya kita mahu cari perkataan yang tepat kami akan menggunakan pilihan -w:

grep -w bosques /home/pablinux/Documentos/vacaciones.txt

Perintah di atas akan mencari "hutan", mengabaikan renjer, dalam fail "holiday.txt" di jalan yang ditunjukkan. Sekiranya yang kita mahukan adalah mencari dua perkataan yang berbeza, kita akan menggunakan perintah egrep:

egrep -w bosques|plantas /ruta/del/archivo

Ketahui berapa kali perkataan muncul dalam fail

grep ia juga mampu kira berapa kali perkataan muncul dalam fail. Untuk ini kami akan menggunakan pilihan -c:

grep -c prueba /ruta/al/archivo

Menambah pilihan -n yang akan kita lihat adalah bilangan baris di mana perkataan itu muncul.

Pencarian terbalik

Kita juga boleh melakukan sebaliknya, iaitu, cari baris yang tidak mengandungi perkataan. Untuk ini, kami akan menggunakan pilihan -v, seperti berikut:

grep -v la ruta/al/archivo

Perintah di atas akan memaparkan semua baris yang tidak mengandungi kata "the". Ini dapat berguna dalam dokumen atau senarai di mana kata diulang berkali-kali dan, untuk sebab tertentu, kita perlu mengakses baris lain.

Mengakses maklumat sistem dengan grep

Model PC

grep ia bukan sahaja dapat mencari di dalam fail. Ia juga dapat melihat maklumat sistem. Pada tangkapan skrin sebelumnya kita dapat melihat bagaimana ia menunjukkan kepada kita model PC yang kita miliki (saya tahu bahawa ia bukan komputer riba yang paling berkuasa di dunia). Untuk ini kami telah menggunakan arahan:

cat /proc/cpuinfo | grep -i 'Model'

Wahai:

grep -i 'Model' /proc/cpuinfo

Sekiranya yang kita mahukan adalah melihat nama-nama unit cakera kita akan menulis:

dmesg | egrep '(s|h)d[a-z]'

Cara Menyenaraikan Hanya Nama Fail yang Sesuai

Sekiranya kita ingin melihat senarai dengan hanya nama fail yang sesuai dengan carian, kita akan menggunakan pilihan -l seperti yang ditunjukkan di bawah:

grep -l 'main' *.c

Dan jika kita mahu melihat perkataan dengan warna, kita akan menulis:

grep --color palabra /ruta/al/archivo

Seperti yang anda lihat, arahannya grep adalah alat yang sangat kuat Sangat berbaloi terutamanya dalam kes di mana kita tidak ingat di mana kita menulis sesuatu atau dalam pengaturcaraan. Di samping itu, ini membantu kita untuk mengetahui maklumat mengenai sistem dengan cara yang disukai oleh pencinta Terminal. Adakah panduan ini untuk mencari teks berguna untuk anda grep?


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   nodri kata

    Hello!
    Apabila anda mengatakan bahawa Grep juga digunakan untuk mencari fail, saya rasa itu tidak betul kerana jika anda menjalankan grep EXPRESSION dan tidak menyebarkan fail ke dalamnya, ia akan menunggu input data dari input standard.
    Menurut halaman manual:
    grep mencari FILE input yang dinamakan untuk baris yang mengandungi padanan dengan POLA yang diberikan. Sekiranya tidak ada fail yang ditentukan, atau jika file "-" diberikan, grep mencari input standard.
    Itulah sebabnya anda dapat menggunakannya dalam saluran pipa, seperti yang menguraikan output dari / proc / cpuinfo dengan menyampaikan output perintah ini sebagai input ke grep anda dapat melakukan pencarian.
    Sesuatu ucapan

  2.   Ann kata

    Pos yang sangat baik.
    Anda menerangkannya dengan baik dan anda terus menerus menerangkan.