我尝试使用以下命令比较两个csv文件。
diff --changed-group-format='%>' --unchanged-group-format='' test2.csv test.csv >> testfile3.csv
但我需要使用diff命令比较两个csv文件的特定列,并获得不同的值。
例如:
file 1
1|9865|0|21
2|5698|0|22
3|2546|0|90
file2
1|9865|0|34
2|1452|9|33
3|2546|0|50
expected output:
2|5698|0|22
给我你宝贵的建议/想法。
答案 0 :(得分:0)
diff
程序无法执行此操作,因为它只比较整行。您可以使用工具构建一个可以执行此操作的工具。其他人提出了类似的问题,例如,
前两个建议使用awk,而第三个建议使用perl包。 awk的两个建议实际上是针对 compare 而不是 diff ,相应地简化了。如果您不需要担心添加/删除的行,那么这些方法就足够了。
perl package suggestion指出了如何构造键,它可以用来唯一地标识css文件中(自己的情况)字段中的值。在您的应用程序中,您将提取列值,例如,使用Text::CSV。