【发布时间】:2020-03-24 13:44:05
【问题描述】:
我有一个按分支分隔的配置文件的 git 存储库,例如:
refs/heads/branch1, file - settings.properties
refs/heads/branch2, file - settings.properties
等等
我正在尝试 grep 每个存储库中每个 settings.properties 文件的某些属性:
git for-each-ref refs/heads --shell --format=‘%(refname:short)’ | xargs -n1 git checkout | cat settings.properties | grep ‘host.name’
第一个命令给了我我的分支列表,第二个命令一个接一个地检查每个分支,我希望第三个命令 cat 文件和第四个命令 grep 某些属性。前 2 个命令工作得很好,但如果我运行整个事情,它只是 greps host.name 仅用于第一个分支。
我显然遗漏了有关管道的一些重要内容。我知道我可以将其编写为 shell 脚本并循环执行所有这些操作,但我想保留“管道”方法,因为我可能经常需要 cat 不同的文件和 grep 不同的属性并且不会不想处理将参数传递到脚本中
【问题讨论】:
-
您没有将
cat包装在循环中或使用xargs,所以它只会运行一次,您希望它在哪里为每个参考运行。
标签: linux git shell git-plumbing