比较两个文件并将其传递给另一个文件shell bash

时间:2014-07-09 12:21:10

标签: linux bash shell unix

我必须创建一个从文件(csv)中读取信息的脚本,并与file2(csv)进行比较(如果可用)。 file2还有一行告诉我价格。

如果匹配,它应该将输出放入第三个文件。

我使用cut命令检查是否存在(cut -f1 -d ";" file1.csv)但是如何将其与第二个文件进行比较?

更新: 文件一有以下信息:软件名称;版本;供应商

文件2:包含以下信息:软件;价格;许可证时间

文件3:应该是结果。

要点是要了解使用了多少许可证以及该部门的成本是多少。许可证,价格,海岸总数正在使用客户。

2 个答案:

答案 0 :(得分:0)

您可以使用diff命令比较两个文件

e.g。 diff file1.csv file2.csv

答案 1 :(得分:0)

使用awk将第二个文件读入数组。然后迭代第一个文件,并在关联的密钥位于数组中时打印所需的信息。由于您没有提供足够的细节来提供准确的答案,以下仅仅是猜测。它假定价格在第二列,而键在第一列。如果在第二个文件中重复某个项目,则报告的价格将是给定的第二个值。

awk 'FNR==NR{keys[$1]=$2; next} 
    $1 in keys { print $1, keys[$1] }' FS=\; file2.csv file1.csv