Cara menggunakan perintah fgrep untuk mencari string di linux

Cara menggunakan perintah fgrep untuk mencari string di linux

Singkat: Dalam panduan ramah pemula ini, kita akan membahas beberapa contoh praktis dari perintah fgrep. Pada akhir panduan ini, pengguna akan dapat melakukan operasi pencarian teks secara efisien menggunakan antarmuka baris perintah.

Pencarian Teks adalah salah satu operasi yang paling sering dilakukan. Namun, tugas sederhana ini dengan cepat menjadi memakan waktu jika pengguna tidak terbiasa dengan alat yang benar. Di Linux, ada berbagai utilitas penyaringan teks seperti AWK, SED, memotong, dll.

Namun, di Linux, fgrep adalah utilitas yang paling disukai untuk pencarian teks sederhana. Dalam panduan ini, kita akan membahas beberapa contoh praktik dari fgrep Perintah yang dapat digunakan dalam kehidupan sehari-hari.

Itu fgrep Perintah di Linux berada di bawah keluarga Komando GREP. Namun, ini digunakan untuk mencari pola string tetap alih -alih ekspresi reguler. Karenanya nama perintahnya fgrep (Memperbaiki grep).

Sintaksis fgrep Perintah mirip dengan perintah keluarga grep lainnya:

$ fgrep [opsi] Pola [file] 

Untuk memulai, mari kita buat file teks biasa dengan konten berikut untuk menggunakan contoh:

$ input CAT.txt 
Lihat Konten File di Linux

Di sini, kita dapat melihat bahwa file teks siap dengan konten sampel. Sekarang mari kita bahas beberapa contoh umum dari fgrep Perintah dalam beberapa contoh berikutnya.

1. Bagaimana fgrep berbeda dari perintah grep dan egrep?

Seperti namanya, fgrep Perintah digunakan untuk mencari pola string tetap. Itu menafsirkan pola sebagai string tetap, bukan ekspresi reguler. Oleh karena itu ia melakukan operasi pencarian dengan cara yang hemat waktu.

Untuk memahami perbedaannya, mari kita gunakan titik (.) karakter dengan perintah grep.

Ekspresi reguler sederhana ini cocok dengan karakter tunggal apa pun kecuali untuk akhir garis:

$ grep ha. memasukkan.txt 
Mencari karakter tunggal dengan grep

Dalam output di atas, kita dapat melihat bahwa titik tersebut (.) Karakter cocok dengan teks har, topi, Dan memiliki.

Sekarang, mari kita gunakan pola yang sama dengan fgrep Perintah dan amati hasilnya:

$ fgrep ha. memasukkan.txt 

Dalam output di atas, kita dapat melihat bahwa perintah gagal menemukan pola yang diberikan.

Ini terjadi karena fgrep Perintah tidak mengenali ekspresi reguler dan mencoba mencari pola yang tidak ada - "Ha.".

[Anda mungkin juga suka: apa perbedaan antara grep, egrep, dan fgrep di linux? ]

2. Cara mencari pola dalam file

Mari kita mulai dengan contoh dasar di mana kita akan mencari profesional string di memasukkan.txt mengajukan:

Input Profesional $ FGrep.txt 
Cari pola dalam file

Seperti yang bisa kita lihat, pencocokan pola berhasil di dua tempat dan disorot dalam warna merah.

3. Cara mengatur warna output grep untuk pola yang cocok

Dalam contoh sebelumnya, kami melihat bahwa, secara default, pola yang cocok disorot dalam warna merah. Namun, kita dapat mengubah perilaku ini dengan menetapkan nilai yang berbeda ke Grep_color Variabel Lingkungan.

Mari kita tetapkan nilainya 32 ke Grep_color Variabel lingkungan untuk menyoroti pola yang cocok dalam warna hijau:

$ ekspor grep_color = 32 $ fgrep Profesional Input.txt 
Atur warna output grep untuk pola pencocokan

Sekarang, sebelum pindah ke contoh berikutnya, lepaskan Grep_color Variabel lingkungan untuk mengaktifkan perilaku default:

$ UNSET GREP_COLOR 

4. Cara mencari beberapa pola dalam file

Terkadang, kita perlu melakukan pencocokan pola untuk beberapa string. Dalam kasus seperti itu, kami dapat memberikan pola dari file teks alih -alih argumen baris perintah.

Mari kita buat file teks yang berisi beberapa pola pada baris terpisah:

$ pola kucing.txt situs web profesional 

Sekarang, mari kita gunakan file ini dengan -F Opsi untuk beberapa pencocokan pola:

$ fgrep -f pola.input txt.txt 
Cari banyak pola dengan fgrep

Dalam output di atas, kita dapat melihat bahwa pencocokan pola berhasil untuk string profesional Dan situs web.

5. Cara membatasi jumlah kecocokan dalam file

Secara default, fgrep Perintah terus melakukan pencocokan pola sampai seluruh file diproses.

Namun, kadang -kadang kita perlu membatasi jumlah kecocokan. Dalam kasus seperti itu, kita dapat menggunakan -M Opsi dengan perintah:

$ fgrep -m 1 input profesional.txt tecmint dimulai pada 15 Agustus 2012 dengan teknis profesional dan semua 

Dalam contoh ini, fgrep Perintah menghentikan pemrosesan file setelah mencocokkan pola pertama.

6. Cara mencetak nama file saat mencari pola

Terkadang, kita hanya perlu menemukan nama file di mana pola tertentu hadir. Dalam kasus seperti itu, kita dapat menggunakan -l opsi fgrep memerintah:

$ fgrep -L Profesional Input.txt memasukkan.txt 

Di sini, kita dapat melihat bahwa perintah itu hanya mencetak nama file, bukan baris dengan pola yang cocok.

7. Cara mencetak nama file saat pencocokan pola gagal

Dalam contoh sebelumnya, kami melihat cara mencetak nama file saat pencocokan pola berhasil. Sekarang, mari kita lihat bagaimana melakukan operasi dengan cara terbalik.

Mari kita coba temukan pola yang tidak ada dalam file dan amati hasilnya:

$ fgrep -l input non-kata-kata.txt memasukkan.txt 

Dalam contoh ini, kami menggunakan -L opsi perintah yang mencetak nama file saat pencocokan pola tidak berhasil.

8. Cara Menekan Pesan Kesalahan

Penanganan kesalahan memainkan peran penting saat menulis skrip shell. Namun, dalam beberapa skenario non-kritis, kita dapat dengan aman mengabaikan pesan kesalahan.

Di dalam fgrep, kita bisa menggunakan -S Opsi yang menekan kesalahan yang terkait dengan file yang tidak ada atau tidak dapat dibaca. Untuk memahami perilaku ini dengan cara yang lebih baik, mari kita coba mencari pola dalam file yang tidak ada:

$ fgrep -s profesional yang tidak ada.txt $ echo $? 2 

Dalam output di atas, kita dapat melihat bahwa perintah tidak menampilkan kesalahan pada aliran kesalahan standar. Namun, kegagalan dilaporkan oleh nilai pengembalian yang tidak nol.

Selain itu, kita juga dapat mengamati perilaku yang sama ketika file tidak dapat dibaca. Jadi, pertama, ubah izin file menggunakan Chmod memerintah:

$ chmod 000 input.input txt $ ls -l.txt 

Sekarang, cobalah untuk mencari polanya dan mengamati hasilnya:

Input Profesional $ FGrep.txt $ echo $? 
Grep mengabaikan pesan kesalahan

9. Cara mengecualikan garis yang cocok sebagian

Dalam contoh sebelumnya, kami melihat bahwa fgrep Perintah melakukan kecocokan parsial. Namun, dalam beberapa kasus, kita perlu melakukan kecocokan yang tepat untuk seluruh baris. Dalam kasus seperti itu, kita dapat menggunakan -X opsi fgrep memerintah.

$ fgrep -nx "Situs yang sama terkadang sulit ditemukan." memasukkan.txt 
Temukan kecocokan yang tepat di file

Dalam output di atas, kecocokan garis yang tepat terjadi pada nomor baris 20.

10. Cara mengecualikan file saat mencari secara rekursif

Terkadang, kita perlu melewatkan file tertentu saat melakukan operasi pencarian. Dalam kasus seperti itu, kita dapat menggunakan --mengecualikan opsi fgrep memerintah.

Untuk memahami ini, pertama -tama buat direktori dan salin beberapa file sampel ke dalamnya:

$ mkdir dir-1 $ input cp.txt dir-1/input.input txt $ cp.txt dir-1/input.data $ input cp.txt dir-1/input.md 

Sekarang, mari kita cari polanya di semua file dir-1 direktori kecuali “.txt" File:

$ fgrep -r -exclude *.TXT Profesional Dir-1 
Kecualikan file saat mencari pola

Dalam output di atas, kita dapat melihat bahwa pencocokan pola dilakukan pada file dengan “.MD " Dan “.data" ekstensi.

11. Cara mengecualikan beberapa jenis file saat mencari secara rekursif

Dalam contoh sebelumnya, kami melihat cara mengecualikan file dengan ekstensi tertentu. Namun, perintah menjadi panjang ketika kami ingin mengecualikan file dengan beberapa ekstensi. Dalam kasus seperti itu, kami dapat memberikan pola mengecualikan dari file alih -alih argumen baris perintah:

Jadi, mari kita buat file teks yang berisi beberapa pola mengecualikan pada baris terpisah:

$ Cat Skip-Pattern.txt *.txt *.data 

Sekarang, mari kita gunakan file ini dengan --tidak termasuk-dari pilihan:

$ fgrep -r-exclude-from skip-pola.TXT Profesional Dir-1 
Kecualikan beberapa jenis file saat mencari pola

Di sini, kita dapat melihat bahwa pencocokan pola dilakukan pada file dengan “.MD " hanya ekstensi.

12. Bagaimana memasukkan file saat mencari secara rekursif

Dalam contoh sebelumnya, kami melihat cara mengecualikan file saat melakukan operasi pencarian secara rekursif. Sekarang, mari kita lihat bagaimana melakukan operasi dengan cara terbalik.

Mari kita gunakan --termasuk opsi fgrep perintah untuk melakukan pencarian pada file dengan “*.txt" perpanjangan:

$ fgrep -r -termasuk "*.txt "profesional dir-1 
Sertakan file saat mencari pola

Dalam output di atas, kita dapat melihat bahwa pencocokan pola dilewati untuk file dengan “*.MD " Dan “*.data" ekstensi.

Dalam artikel ini, kami membahas beberapa contoh yang berguna dari fgrep memerintah. Pemula dapat menggunakan contoh-contoh ini dalam kehidupan sehari-hari untuk meningkatkan produktivitas saat bekerja dengan Linux.

Apakah Anda tahu contoh terbaik lainnya dari perintah fgrep di Linux? Beri tahu kami pandangan Anda di komentar di bawah.