GNU/Linux >> Belajar Linux >  >> Linux

Membaca Pola Grep Dari File?

Saya memiliki beberapa file teks besar dan dalam file UNIQS.txt Saya memiliki daftar string ke grep dari berkas lain. Kode yang saya gunakan adalah

grep -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam

yang tidak melakukan apa pun – file yang dihasilkan kosong. Tapi ketika saya melakukannya

grep -F -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam

itu bekerja dengan benar. Ini membingungkan saya karena saya tidak berpikir grep akan menafsirkan entri di UNIQS.txt sebagai pola regexp tanpa tanda kutip dan garis miring dan seterusnya dalam file (yang tidak ada). Apakah kasusnya secara umum jika Anda mendapatkan pola dari file maka secara otomatis akan berpikir bahwa itu adalah pola regexp?

Sunting: Dalam UNIQS.txt file, ada baris baru yang dipisahkan string dari formulir

HWI-ST365:215:D0GH0ACXX:2:1101:10034:186783

(disebut nama template) dan file EEP_VSL... tab kolom yang dipisahkan, dengan sekitar 14 kolom dan kolom pertama adalah nama template, jadi pada dasarnya saya ingin mengekstrak baris yang sesuai dengan setiap template dalam file.

Jawaban yang Diterima:

-f opsi menentukan file tempat grep membaca pola. Itu seperti meneruskan pola pada baris perintah (dengan -e opsi jika ada lebih dari satu), kecuali bahwa saat Anda menelepon dari shell, Anda mungkin perlu mengutip pola untuk melindungi karakter khusus di dalamnya agar tidak diperluas oleh shell.

Argumen -E atau -F atau -P , jika ada, memberi tahu grep di sintaks mana pola ditulis. Tanpa argumen, grep mengharapkan ekspresi reguler dasar; dengan -E , grep mengharapkan ekspresi reguler yang diperluas; dengan -P (jika didukung), grep mengharapkan ekspresi reguler Perl; dan dengan -F , grep mengharapkan string literal. Apakah polanya berasal dari baris perintah atau dari file tidak masalah.

Perhatikan bahwa string adalah substring:jika Anda melewati a+b sebagai pola maka garis yang berisi a+b+c cocok. Jika Anda ingin menelusuri baris yang berisi persis salah satu string yang disediakan dan tidak lebih dari itu, teruskan -x pilihan.


Linux
  1. Bagaimana Cara Menghapus "Data biner" Dari File Teks (mis. Bash_history)?

  2. Buat Data Pembacaan Teks Dari File?

  3. Perintah grep Linux

  1. Bagaimana cara membuat file di Linux dari jendela terminal?

  2. grep daftar besar terhadap file besar

  3. Bagaimana menemukan kata-kata dari satu file di file lain?

  1. Membaca file CSV dengan kueri SQL dari linux shell

  2. Cara grep \n dalam file

  3. Buat PEM dari file PPK