如何从文件中find单词到另一个文件? Linux的

在一个文本文件中,我有150个新的保留字。 而我有另一个文本文件,大约有10万行(只是提及)。

我需要做的是, search属于第一个文件的每个单词,并检查它们是否在第二个文件中。

使用命令:

已经,谢谢。


编辑:

伙计们,我试过这个.sh,但它不起作用(显示几乎每一行)。

#!/usr/bin/env sh cat words.txt | while read line; do if grep -F "$FILENAME" text.txt then echo "Se encontró $line" fi done 

我发现的另一个方法是:

  fgrep -w -o -f "words.txt" "text.txt" 

MMMMM。

Solutions Collecting From Web of "如何从文件中find单词到另一个文件? Linux的"

你可以使用fgrep -f

 fgrep -f "first-file" "second-file" 

或者其他匹配完整的单词:

 fgrep -w -f "first-file" "second-file" 

更新:根据评论:

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

像这样使用grep:

 grep -f firstfile secondfile 

第二选择

感谢Ed Morton指出文件“reserved”中的单词被视为模式。 如果这是一个问题 – 它可能会也可能不会 – OP可能会使用这样的不使用模式的东西:

文件“保留”

 cat dog fox 

和文件“文本”

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

awk脚本是这样的:

 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 

输出:

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

第三选项

另外,它可以做得很简单,但在bash中更慢:

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