sed命令如何搜索和替换git远程分支列表

时间:2017-03-22 11:46:02

标签: git svn sed

迁移后我有两个svn远程分支现在如何使用下面的sed命令将所有远程分支更改为git本地分支

$ git branch -r
svn-origin/branch-A
svn-origin/branch-B

此处如何删除svn-origin/到git local branch。

$ git branch -r | grep branch | sed 's/svn-origin//'

我需要的输出是这样的:

$ git branch
branch-A
branch-B

2 个答案:

答案 0 :(得分:1)

您可以简单地使用不同的分隔标记,例如#

git branch -r | grep branch | sed 's#svn-origin/##'

现在sed将使用空字符串替换svn-origin/sed读取s命令,以及它认为是分隔符的下一个字符。因此,如果您想使用/(或表达式中的任何其他字符),只需使用不同的分隔符。

如果您想删除前导空格,也可以使用:

git branch -r | grep branch | sed 's#^\s*svn-origin/##'

因此,\s*删除空格,^作为锚点(^不需要)。

答案 1 :(得分:1)

git branch -r |awk -F'/' '/branch/{print $NF}'

OR

git branch -r |grep branch|sed -r 's|(^.*/)(.*)|\2|'