读取一个文件以搜索另一个文件并打印出缺失的行

时间:2017-03-02 08:18:33

标签: linux bash shell grep

我正在关注此帖finding contents of one file into another file in unix shell script中的示例,但希望以不同方式打印出来。

基本上是文件" a.txt",其中包含以下几行:

alpha
0891234
beta

现在,文件" b.txt",包含以下行:

Alpha
0808080
0891234
gamma

我希望命令的输出是:

alpha
beta

第一个是"不正确的情况"第二个是"从b.txt"中丢失。 0808080并不重要,它可以在那里。

这与使用grep -f "a.txt" "b.txt"不同,只打印0891234

有优雅的方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

将grep与以下选项一起使用:

grep -Fvf b.txt a.txt

关键是使用-v

  

-v, - 反转匹配                 反转匹配感,选择不匹配的行。

当从文件中读取模式时,我建议使用-F选项,只要您不明确希望将模式视为正则表达式。

  

-F, - 固定字符串                 将PATTERN解释为固定字符串(而不是正则表达式)的列表,由换行符分隔,其中任何一个                 是匹配。