其生若浮其死若休

发布于     更新于
批量查找文件并追加替换内容。

不为福先,不为祸始;感而后应,迫而后动,不得已而后起。去知与故,循天之理,故无天灾,无物累,无人非,无鬼责。其生若浮,其死若休;

——《庄子·刻意》

批量查找文件并追加替换内容。

遇到一个需求,需要将公司的项目的 git 提交信息都改成公司的,但是自己的项目不想改。可以在每个项目里边单独配置提交者的邮箱和用户名,即去掉 --global 标记:

git config user.name "Your Name"
git config user.email "[email protected]"

这一段信息在 git 仓库的 .git/config 文件里可以看到。

首先需要查找到所有仓库的 .git 目标,找到其中的 config 文件:

find -maxdepth 4 -type f -path "*/.git/*" -prune -name "config" -print

这里限定目录层级为 4 级。然后通过 echo 追加内容:

find -type f -path "*/.git/*" -prune -name "config" -print -maxdepth 4 -exec sh -c "echo '[user]\n\temail = [email protected]\n\tname = user' >>  {}" \;

如果只是修改某一个文件可以:

echo -e '[user]\n\temail = [email protected]\n\tname = user' >> ./.git/config