GNU/Linux >> Znalost Linux >  >> Linux

Jak najít slova z jednoho souboru v jiném souboru?

Můžete použít grep -f :

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

NEBO jinak, aby odpovídala celá slova:

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

AKTUALIZACE: Podle komentářů:

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

Použijte grep takto:

grep -f firstfile secondfile

DRUHÁ MOŽNOST

Děkuji Edu Mortonovi za upozornění, že se slovy v souboru „rezervováno“ se zachází jako se vzory. Pokud je to problém – může nebo nemusí být – OP může použít něco takového, co nepoužívá vzory:

Soubor "rezervováno"

cat
dog
fox

a soubor "text"

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

Skript Awk je takovýto:

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

s výstupem:

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

TŘETÍ MOŽNOST

Případně to lze udělat docela jednoduše, ale pomaleji v bash:

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

Linux
  1. Kopírovat posledních N řádků z jednoho souboru do druhého?

  2. Čtení Grepových vzorů ze souboru?

  3. Jak zkopírovat tabulku z jedné databáze mysql do jiné databáze mysql

  1. Jak najdu konkrétní soubor z terminálu Linux?

  2. Jak spustit soubor sh z jiného souboru sh

  3. Jak grep \nv souboru

  1. Jak zkopírovat commity z jednoho repozitáře Git do druhého?

  2. Jak nahrát jeden soubor pomocí FTP z příkazového řádku?

  3. Zkopírujte velký soubor z jednoho linuxového serveru na druhý