比较2个文件,仅显示部分匹配的行

dav*_*vid 2 linux bash command-line

文件#1示例:

one two three 
four five six 
seven eight nine
eleven 
Run Code Online (Sandbox Code Playgroud)

文件#2示例:

 two
 five
 nine.not
 eleven
Run Code Online (Sandbox Code Playgroud)

我想在文件#1上找到包含在文件#2上出现的任何单词的任何行,示例输出:

one two three
four five six 
eleven
Run Code Online (Sandbox Code Playgroud)

我试图查看是否有办法在linux命令行中执行此操作,但尚未成功。有任何想法吗?

谢谢

Jos*_* M. 5

你可以试试:

grep -f file2 file1
Run Code Online (Sandbox Code Playgroud)

-f选项从file2获取模式(每行一个)

编辑

@Barmar评论

grep -F -w -f file2 file1
Run Code Online (Sandbox Code Playgroud)

使用-w选项时,eleveneleven不会选择像

  • 使用`-F`选项执行完全匹配而不是regexp,使用`-w`匹配整个单词。 (3认同)