使用grep排除箭头模式" - >"

Jay*_*Jay 3 git bash grep

我正在尝试列出我使用的所有Git远程分支

git branch -r
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也给了我

origin/HEAD -> origin/master
Run Code Online (Sandbox Code Playgroud)

我正在使用shell脚本for来循环遍历分支名称.它把origin/HEAD,->origin/master作为单独的分支名称,导致错误.为了避免这种情况,我正在使用grep -v过滤掉->

for x in $(git branch -r | grep -v '->')
do #stuff
done;
Run Code Online (Sandbox Code Playgroud)

但我grep -v '->'不行.既不做\-\>^->(我不是很精通正则表达式)

我如何实现我的需求?(在Git中,通过不首先输出origin/HEAD -> origin/master,或者在中grep)

Cri*_*ian 7

你有没有尝试过 grep -v '\->'

我想你只需要看看破折号.


tor*_*rek 6

grep快速的事情:

grep -e expr
Run Code Online (Sandbox Code Playgroud)

允许expr类似选项而不被解释选项.因此,您可以找到-ewith grep -e -e或skip的->出现grep -v -e '->'.

git的一般规则:对于带引用的脚本,请使用该git for-each-ref命令.