如何使用shell脚本选择所需的列来读取CSV文件?

如何使用shell脚本选择所需的列来读取CSV文件?,shell,csv,merge,scripting,Shell,Csv,Merge,Scripting,我有几个CSV文件需要合并成一个文件 幸运的是,所有文件都使用了主键。根据主键,我需要从选定列上的几个文件中读取日期 如何开始根据列名读入数据 我认为下一个大任务是如何读取多个文件,比如访问表,查询每个文件中存在的主键 H1,名称,DOB,…。静态信息(csv 1文件中的列) SASH1,Auth#,State,Status,…。(csv 2文件中的列) SPLI,RequestedFromDate,类型,服务类型,…。。(csv 3文件中的列) CRLI,审查日期,审查人,标准,…。(csv

我有几个CSV文件需要合并成一个文件

幸运的是,所有文件都使用了主键。根据主键,我需要从选定列上的几个文件中读取日期

如何开始根据列名读入数据

我认为下一个大任务是如何读取多个文件,比如访问表,查询每个文件中存在的主键

H1,名称,DOB,…。静态信息(csv 1文件中的列)
SASH1,Auth#,State,Status,…。(csv 2文件中的列)
SPLI,RequestedFromDate,类型,服务类型,…。。(csv 3文件中的列)
CRLI,审查日期,审查人,标准,…。(csv 4文件中的列)
ARLI,DateofReview,CriteriaMet,CriteriaSource,…。(csv 4文件中的列)

等等等等……

根据我对您问题的理解,我已达成以下解决方案

以下是我的用例:-

声明了3个变量(以后您可以用文件替换它们),并在下面的查询中对同一个变量执行

var=abc,bcd,xyz,pqm
var2=qwe,asd,zxc,rty
var3=poi,lkj,mnb,ghj

echo "`echo $var|awk -F"," '{print $1}'`,`echo $var2|awk -F"," '{print $2}'`,`echo $var3|awk -F"," '{print $3}'`"
输出为:-

abc,asd,mnb

您想读取csv文件并获取特定列还是其他内容?是的,我想读取文件夹中的每个csv文件并获取特定列数据。每个记录共享相同的主键。因此,我的目标是从每个csv文件中选择与从父csv中选择的主csv文件对应的所有记录。希望我能清楚地解释我的意图。这有点挑战性,而且根据我的经验,你的问题还不清楚。(1) 是否有一个文件包含要从
csv1..4
合并的列的名称?或者,是否要合并
csv1..4
中的所有列?(2) 每个
csv1..4
文件的格式是什么?(a) 它们是否有一个标题行,或者(b)是否有多个标题行?(3) 合并列的顺序是否与原始
csv1..4
中的原始顺序相同?一切都很重要。接下来,你尝试了什么
awk
将是合适的工具,或者简单的
paste
可能适用于您的情况。很抱歉,我是新手。我正在寻找一个起点,因为我不知道如何成为这个项目。所有文件都是逗号分隔的csv文件。我有一些样本数据可以让事情变得更清楚。如何将文件上载到问题区域?所以有一个csv文件和一个记录。基于此文件,我希望合并共享同一主键的其他文件中的记录。所有文件都有标题行。我只需要从所有文件中选择数量的列。因此,我需要能够识别哪些列数据被打印到合并文件中。谢谢Ankush。我看到了您的输出,这看起来是一个良好的开端。我将我的csv文件添加到脚本中,它只显示文件名。Authorization.csv,,我可以知道您正在运行的所需输出和命令/脚本吗?我正在使用shell脚本。我正在研究awk来完成这项任务。预期的结果可能是这样的。此工具不允许我格式化显示输出。我在原来的问题中说明了这一点。
abc,asd,mnb