我有一个目录,其中包含 20 多个 git 存储库。我必须更改每个文件中的远程原始 URL。我不想手动执行此操作,而是想使用以下命令:
find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && git remote set-url origin git@euxxx-x-x-xxx01.xx.xx.xxx.com:/foo/bar/'{}'.git" \;
Run Code Online (Sandbox Code Playgroud)
问题是,括号 {} 被相对路径替换,所以我最终得到以下命令:
git remote set-url origin git@euxxx-x-x-xxx01.xx.xx.xxx.com:/foo/bar/./zaz/repo.git
Run Code Online (Sandbox Code Playgroud)
但我只需要
git remote set-url origin git@euxxx-x-x-xxx01.xx.xx.xxx.com:/foo/bar/repo.git
Run Code Online (Sandbox Code Playgroud)
如何实现这一目标?
我正在尝试使用 sed 替换文件中的路径。
sudo sed 's/a/b/g' -i /tmp/test
Run Code Online (Sandbox Code Playgroud)
然而变量是
a = /var/lib and
b = /data/lib
Run Code Online (Sandbox Code Playgroud)
如何逃脱斜线?