#! /bin/bash ls | grep -v sh | while read line do cd $line echo $line echo "开始" git checkout dev-20241001-01 find -name pom.xml|xargs -i sed -i 's/1.0.0-TMP-APSTACK-SNAPSHOT/DEV-0.0.1-SNAPSHOT/g' {} git add . git commit -a -m "整体修改dev版本" git push origin dev-20241001-01 #echo "结束" cd .. done
新建一个txt文件,复制上面的脚本,保存文件为.sh文件在需要批量修改文件的根目录打开gitbush窗口执行sh xxx.sh
代码解释:
1. `#! /bin/bash`:指定了使用Bash作为脚本的解释器。
2. `ls | grep -v sh | while read line`:使用ls命令列出当前目录下的所有文件和文件夹,通过管道符(|)将结果传递给grep命令,筛选出不包含“sh”的文件或文件夹,然后使用while循环逐行读取结果。
3. `do`:循环体的开始。
4. `cd $line`:进入当前循环读取的文件夹。
5. `echo $line`:打印当前处理的文件夹名称。
6. `git checkout dev-20241001-01`:切换到名为dev-20241001-01的分支。
7. `find -name pom.xml|xargs -i sed -i 's/1.0.0-TMP-APSTACK-SNAPSHOT/DEV-0.0.1-SNAPSHOT/g' {}`:查找并替换pom.xml文件中的特定内容。
8. `git add .`:将所有修改过的文件添加到Git的暂存区。
9. `git commit -a -m "整体修改dev版本"`:提交代码并添加注释。
10. `git push origin dev-20241001-01`:将修改推送到名为dev-20241001-01的远程分支。
11. `cd ..`:返回上一级目录。
12. `done`:循环体的结束。