我正在学习shell脚本,并尝试为我的团队构建一个框架以用于测试目的。因此需要你的帮助。
概述:我正在尝试使用shell脚本通过查询从hive中提取聚合值,并将结果存储在单独的文件中,假设File1.csv。
现在我想使用shell脚本将上面的csv文件与另一个csv文件File2.csv进行比较,并将结果打印为PASS(如果记录匹配)或将FAIL(如果记录不匹配)按行排列到第三个文件中,让我们说output.txt
注意:首先我们需要将记录排序到File1.csv中,然后将其与File2.csv进行比较,然后将结果PASS / FAIL行存储到output.txt中
File1.csv的格式
邮政编码位置InnerLocation Value_%Volume_% XYZ London InnerLondon 6.987 2.561 ABC NY High Street 3.564 0.671 DEF Florida Miami 8.129 3.178
快速帮助将不胜感激。在此先感谢。
答案 0 :(得分:0)
您有两个已排序的文本文件,并希望查看哪些行不同。您的问题中没有任何内容可以解决CSV特定的问题。
此类任务的便捷工具是sdiff
。
sdiff -s File[12].csv
-s
选项可确保您只看到不同的行,但请查看 sdiff 手册页:也许您还想添加一个处理空白区域的选项。
如果您需要了解更多详细信息,例如,不仅显示不同的CSV行,而且显示行中的哪个字段不同,如果确实存在常规CSV文件,则您真的应该使用CSV解析器和不要在shell脚本中执行此操作。如果您确定实际上只使用了CSV文件允许的所有功能的子集,那么从shell脚本中解析CSV文件确实有效。