【问题标题】:Need help in slight building a logic for modifying the files in sub-folders using Bash script需要帮助构建使用 Bash 脚本修改子文件夹中文件的逻辑
【发布时间】:2021-12-08 21:42:58
【问题描述】:

我正在尝试使用 bash 脚本修改 YAML 文件和 Swagger YAML 文件集以避免手动复制粘贴工作。

我的目录如下所示:-

C:.
├───folder-1
    ├─── README.md
    ├─── dev.yaml
    ├─── prod.yaml
    ├─── qa.yaml
    └─── run.ps1
├───folder-2
    ├─── README.md
    ├─── dev.yaml
    ├─── prod.yaml
    ├─── qa.yaml
    ├─── run.ps1
    ├─── sample.yaml
    ├─── swagger-1.yaml
    └─── swagger-2.yaml

我想遍历 folder-1 , folder-2 并编辑所有 dev、qa、prod YAML 以附加一些文本 和所有 swagger.yaml 在另一个附加

这是我的初级脚本

for d in *; do
 echo $d
 cd $d
 ls -l
 cd ..
done

使用上述脚本,我只能列出所有文件夹及其文件。 我需要帮助如何附加文件?举个例子,我想在每个目标文件中添加“虚拟”作为内容。

提前致谢!!

【问题讨论】:

    标签: bash yaml swagger


    【解决方案1】:
    for d in *; do
     echo $d
     cp -a ./resources/. ./$d/
     
     cd $d
     
     for f in *.yaml; do 
        if [[ "$f" = kong* ]]; 
        then
         yq e -i '._info.select_tags = [.services[].name]' $f
        else
         yq e -i '(.security.gas-oidc = []) | (.components.securitySchemes.gas-oidc.type = "oauth2") ' $f
        fi
     done
     
     echo "Files are modified now pushing to git repository"
     git add .
     git commit -m "Batch for commit in git"
     git commit
     git push origin master:dev
    
     cd ..
    done
    
    
    
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2021-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多