比较两个 .csv 文件并将差异写入第三个文件

比较两个 .csv 文件并将差异写入第三个文件

我有两个 .csv 文件 test_case_list.csv 和 test_case_summary.csv,我想生成第三个文件,该文件将具有两个文件的差异。

test_case_list.csv好像:

cli-verify-cvlan-rewrite    ./vlan/vlan_rewrite_review.xls
cli-verify-cvlan-rewrite-lag    ./vlan/vlan_rewrite_review.xls
cli-verify-aggregation-general  ./link-aggr/aggregation.xls

test_case_summary.csv好像:

*   cli-verify-aggregation-general  ./link-aggr/aggregation.xls
*   cli-verify-cvlan-rewrite    ./vlan/vlan_rewrite_review.xls

输出:另一个 .xls 或 .csv 文件

cli-verify-cvlan-rewrite-lag    ./vlan/vlan_rewrite_review.xls

答案1

使用grepsed

grep -v -F -f <(sed 's/^[*[:space:]]*//' test_case_summary.csv) test_case_list.csv > diff.csv

sed命令删除所有前导*和空白字符,test_case_summary.csv并且此输出用作指定模式文件grep的选项的输入。-f

选项-F用于将模式解释为固定字符串而不是正则表达式,并-v选择不匹配的行,即test_case_list.csv其中的行不是模式文件中给出。然后输出被重定向到文件diff.csv

此外,您可以添加grep's-x选项以仅匹配整行。

相关内容