Bash 基于csv第1列中的组运行操作

Bash 基于csv第1列中的组运行操作,bash,shell,csv,Bash,Shell,Csv,我有一个CSV,在第2列中有jarname,这些jarname被分组在bundle A1 A2中。。在第1栏中。我希望一次在一个Bundle(比如A1)上运行操作(复制(部署)和一些其他操作),这意味着从该Bundle收集服务。还希望存储这些服务的名称,以检查它们的操作是否完成。如果是,则处理第二个组。我检查日志以查看带有成功消息的那些服务的名称 通过为每个组创建文件夹,使每个文件夹都有所有JAR,并通过读取csv(添加的新列)一次复制一个文件夹,我实现了这一点。我可以继续使用它,但仍然无法保存

我有一个CSV,在第2列中有jarname,这些jarname被分组在bundle A1 A2中。。在第1栏中。我希望一次在一个Bundle(比如A1)上运行操作(复制(部署)和一些其他操作),这意味着从该Bundle收集服务。还希望存储这些服务的名称,以检查它们的操作是否完成。如果是,则处理第二个组。我检查日志以查看带有成功消息的那些服务的名称

通过为每个组创建文件夹,使每个文件夹都有所有JAR,并通过读取csv(添加的新列)一次复制一个文件夹,我实现了这一点。我可以继续使用它,但仍然无法保存组的服务名称。 检查日志

OLDIFS=$IF
while IFS=, read -r bundle jarName 
do  
  echo --"$jarName"--
  echo --"$bundle"-- 
  if [[$bundle != "" ]]; then
    if [[ -d "$targetDir/$bundle/" ]]; then
      find $sourceDir/ -type f -name "$jarName*" -print0 | xargs -r 0    -i mv "{}" $targetDir/$bundle$/;
    else
      mkdir  $targetDir/$bundle
      find $sourceDir/ -type f -name "$jarName*" -print0 | xargs -r 0    -i mv "{}" $targetDir/$bundle$/;
    fi
  fi
完成


现在,希望逐个部署此文件夹,并在组中查找服务名称,就像在日志中查找成功一样,然后只处理下一个组。 CSV******************************如下

A1,test1.jar,el
A1,test21.jar,el
A2,test3.jar,el
A2,test5.jar,el
A3,test7.jar
A4,test90.jar
我想补充一下 我买了一捆美元{ cp$targetDir/$bundle/* 在这个包中获取jar名称,并在日志中查找test1.jar是否成功 test21.jar成功后,仅对A2继续。
}

能否提供CSV的一个片段?如果它只有两列,您可以在IFS=、read-r。。。完成。csv片段会很有帮助。我已经用csv更新了问题,请参阅。我坚持的主要问题是,如果JAR复制成功,如何在日志文件中保存要跟踪的JAR名称。成功部署后,日志文件将显示这些名称。您的csv文件有两列以上。您将需要一个虚拟变量来接收来自行其余部分的数据。尝试:
当IFS=,read-r bundle jarName dummy
(通常使用下划线作为伪变量)。能否从CSV中提供一个片段?如果它只有两列,您可以在IFS=、read-r。。。完成。csv片段会很有帮助。我已经用csv更新了问题,请参阅。我坚持的主要问题是,如果JAR复制成功,如何在日志文件中保存要跟踪的JAR名称。成功部署后,日志文件将显示这些名称。您的csv文件有两列以上。您将需要一个虚拟变量来接收来自行其余部分的数据。Try:
当IFS=,read-r=name dummy
(通常使用下划线作为伪变量)。
A1,test1.jar,el
A1,test21.jar,el
A2,test3.jar,el
A2,test5.jar,el
A3,test7.jar
A4,test90.jar