在Linux上比较文件A和文件B(部分匹配)

时间:2018-11-29 18:52:25

标签: linux grep compare

首先,感谢您抽出宝贵时间阅读本文并尝试解决我的问题。现在解决问题:

我有两个txt文件“序列”和“列表”。我需要将文件“列表”与文件“序列号”进行比较,以查明是否还剩下特定软件的序列号,因此基本上显示那些没有名称的名称(在我的示例中:MS Office 2016、2013、365)在文件“序列”中匹配,因此我不再提供出售。

我尝试使用“ grep”命令

grep -v -F -x list.txt serials.txt

但是,似乎文件“ serials”的格式存在问题:

MS Office 2016-XXXX-XXXX-XXXX

MS Office 2013-XXXX-XXXX-XXXX

Office 365女士-XXXX-XXXX-XXXX

文件“列表”很简单:

MS Office 2016

MS Office 2013

Office 365女士

有人可以帮助我如何指定命令以获取不属于serials.txt的名称的输出吗?

1 个答案:

答案 0 :(得分:0)

使用Shell / Perl / Python等完成该操作的几种方法 如果我正确理解您的要求,那么Bash中有一个选项:

cat list | while read product
do
    num_lic=$( grep -wc $product serials )
    if [ $num_lic -eq 0 ]
    then
        echo $product
    fi
done