根据CSV中第1列中的组运行操作

时间:2019-07-26 13:00:40

标签: bash shell csv

我有一个CSV,第2列的jarname分组在第1列的Bundle A1 A2 ..中。我想一次对一个Bundle(例如A1)运行操作(复制(部署)和其他一些操作)这意味着从该捆绑包中收集服务。还希望存储这些服务的名称,以检查是否对它们完成了操作,然后在第二组上工作。我检查日志以查看带有成功消息的那些服务的名称。

我通过在每个组中创建一个文件夹来实现这一点,以便每个文件夹都包含所有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

完成


OUTPUT- 
ls $targetDir
A1 
A2
A3..

现在要一个接一个地部署此文件夹,并与在日志中成功一样在组中查找服务名称,然后仅处理下一个组。 CSV ********************************下方

A1,test1.jar,el
A1,test21.jar,el
A2,test3.jar,el
A2,test5.jar,el
A3,test7.jar
A4,test90.jar

我想添加类似     为我在$ bundle {     cp $ targetDir / $ bundle / *     获取此捆绑包中的jar名称,并在日志中查找test1.jar成功     test21.jar成功,然后仅对A2进行。     }

0 个答案:

没有答案