GNU/Linux >> Belajar Linux >  >> Linux

Tutorial Perintah Linux fgrep untuk Pemula (dengan Contoh)

Meskipun grep adalah perintah Linux yang terkenal (kami telah membahasnya secara mendetail), tahukah Anda bahwa ada dua varian berbeda dari alat ini? Ya, ini adalah egrep dan fgrep . Dalam tutorial ini, kita akan membahas yang terakhir (fgrep) menggunakan contoh yang mudah dimengerti. Namun sebelum kita melakukannya, perlu disebutkan bahwa semua contoh dan instruksi yang disebutkan dalam tutorial ini telah diuji di Ubuntu 16.04LTS.

Perintah fgrep Linux

Jika Anda melihat dokumentasi resmi, halaman manual untuk perintah grep mengatakan fgrep tidak lain adalah grep -F. Ia juga mengatakan varian seperti fgrep dan egrep hanya disediakan untuk kompatibilitas mundur. Kami akan menyentuh detail ini nanti dalam tutorial ini.

Sementara itu, berikut sintaks fgrep (yang sama dengan grep):

grep [OPTIONS] PATTERN [FILE...]

Dan inilah cara halaman manual perintah grep menjelaskan alat tersebut:

grep searches the named input FILEs for lines containing a match to the given PATTERN. If no files 
are specified, or if the file “-” is given, grep searches standard input. By default, grep prints
the matching lines.

Contoh gaya Tanya Jawab berikut akan memberi Anda gambaran yang lebih baik tentang cara kerja fgrep.

Q1. Apa perbedaan fgrep dari grep dan egrep?

Perintah fgrep berbeda dari grep dan egrep dalam artian menginterpretasikan PATTERN sebagai daftar string tetap (bukan ekspresi reguler), dipisahkan oleh baris baru.

Karena dikatakan sama dengan grep -F, inilah cara seorang ahli menjelaskan opsi grep -F di StackExchange:

The -F switch switches grep into a different mode where it accepts a pattern to match, but then 
splits that pattern up into one search string per line and does an OR search on any of the strings
without doing any special pattern matching.

Q2. Bagaimana cara menggunakan fgrep?

Untuk memahami penggunaan fgrep, pertama-tama mari kita ambil contoh dasar. Misalkan ada file (file1) yang isinya sebagai berikut:

Dan ada file lain (words.txt) yang berisi daftar kata yang ingin kita cari di file1.

Jadi, inilah cara Anda dapat menggunakan fgrep untuk melakukan pencarian ini:

fgrep -f words.txt file1

Jadi Anda bisa melihat kata-kata yang ditemukan disorot dengan warna merah. Sekarang beberapa dari Anda mungkin berpendapat bahwa itulah yang juga akan dilakukan grep dan egrep dalam kasus ini, lalu apa perbedaan fgrep?

Pertama, ya, Anda benar. Perintah grep dan egrep juga akan menghasilkan keluaran yang serupa:

Tetapi perbedaannya akan jelas jika file1 dan words.txt berisi konten berikut (perhatikan karakter khusus dalam kata):

Di sini, egrep dan grep akan gagal menemukan semua kata:

Tetapi fgrep akan berfungsi sebagaimana dimaksud:

Q3. Apakah benar-benar tidak ada perbedaan antara fgrep dan grep?

Pergi dengan dokumentasi resmi, tidak ada perbedaan antara fgrep dan grep -F perintah. Namun, dilaporkan ada satu perbedaan utama antara kedua alat tersebut:algoritma pencocokan string yang mereka gunakan. Sementara fgrep menggunakan algoritme Aho-Corasick, grep menggunakan versi Commentz-Walter yang dimodifikasi.

"Ini berarti grep memiliki kompleksitas O(mn) kasus terburuk sementara fgrep paling buruk O(m+n)," kata seorang pakar di forum StackExchange.

Kesimpulan

Terbukti, perintah fgrep tidak sulit untuk dipahami dan digunakan. Adapun perbedaan antara fgrep dan grep -F, sementara kami telah mencatat poin di Q3, kami pikir masalah ini seharusnya tidak mengganggu sebagian besar pengguna. Jika Anda ragu, atau memiliki pertanyaan terkait fgrep, bagikan dengan kami dengan meninggalkan komentar di bawah.


Linux
  1. Linux memperluas Tutorial Perintah Untuk Pemula (dengan Contoh)

  2. Tutorial perintah faktor Linux untuk pemula (dengan contoh)

  3. Linux ya Tutorial Perintah untuk Pemula (dengan Contoh)

  1. Tutorial Perintah Pengguna Linux untuk Pemula (dengan Contoh)

  2. Tutorial Perintah penjumlahan Linux untuk Pemula (dengan Contoh)

  3. Tutorial Perintah tidur Linux untuk Pemula (dengan Contoh)

  1. Tutorial Perintah Linux nproc untuk Pemula (dengan Contoh)

  2. Tutorial Perintah Linux tac untuk Pemula (dengan Contoh)

  3. Tutorial Perintah nama dasar Linux untuk Pemula (dengan Contoh)