GNU/Linux >> Belajar Linux >  >> Linux

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

Anda dapat menggunakan grep -f :

grep -Ff "first-file" "second-file"

ATAU yang lain untuk mencocokkan kata lengkap:

grep -w -Ff "first-file" "second-file"

PEMBARUAN: Sesuai komentar:

awk 'FNR==NR{a[$1]; next} ($1 in a){delete a[$1]; print $1}' file1 file2

Gunakan grep seperti ini:

grep -f firstfile secondfile

OPSI KEDUA

Terima kasih kepada Ed Morton karena telah menunjukkan bahwa kata-kata dalam file "reserved" diperlakukan sebagai pola. Jika itu menjadi masalah - mungkin atau tidak - OP mungkin dapat menggunakan sesuatu seperti ini yang tidak menggunakan pola:

Berkas "dicadangkan"

cat
dog
fox

dan file "teks"

The cat jumped over the lazy
fox but didn't land on the
moon at all.
However it did land on the dog!!!

Skrip awk seperti ini:

awk 'BEGIN{i=0}FNR==NR{res[i++]=$1;next}{for(j=0;j<i;j++)if(index($0,res[j]))print $0}' reserved text

dengan keluaran:

The cat jumped over the lazy
fox but didn't land on the
However it did land on the dog!!!

OPSI KETIGA

Alternatifnya, ini bisa dilakukan dengan cukup sederhana, tetapi lebih lambat di bash:

while read r; do grep $r secondfile; done < firstfile 

Linux
  1. Cara menemukan File di Linux

  2. Cara Menemukan dan Menyalin Jenis File Tertentu Dari Satu Direktori Ke Direktori Lain Di Linux

  3. Cara menyalin atau mengkloning izin dari satu file ke file lain di Linux

  1. Temukan N Kata Paling Sering Dalam Sebuah File?

  2. Membaca Pola Grep Dari File?

  3. Cara menyalin tabel dari satu database mysql ke database mysql lainnya

  1. Bagaimana saya bisa menemukan file tertentu dari terminal Linux?

  2. Cara grep \n dalam file

  3. Bagaimana cara mengunggah satu file dengan FTP dari baris perintah?