从git repo中删除标签

时间:2015-02-23 18:51:16

标签: linux shell awk sed grep

尝试使用shell从我的repo中删除不同的标记:

git ls-remote --tags git@mit.usa.com:s1836/pro-ti.git | awk '{print $2}'

返回,如何只将不同的标签格式化为v1,v2,v3,v4:

refs/tags/v1
refs/tags/v1^{}
refs/tags/v2
refs/tags/v2^{}
refs/tags/v3
refs/tags/v3^{}
refs/tags/v4
refs/tags/v4^{}

3 个答案:

答案 0 :(得分:3)

好老grepuniq

... | grep -o 'v[0-9]\+' | sort | uniq

答案 1 :(得分:2)

您可以将git命令传递给此awk:

git ls-remote --tags git@mit.usa.com:s1836/pro-ti.git | awk '
    {split($2,a,"[/^{]"); s[a[3]]} END{for (i in s) print i}'
v1
v2
v3
v4

答案 2 :(得分:1)

使用GNU awk进行多字符RS:

$ gawk -v RS='(\\^\\{\\})?\n' -F'/' '!seen[$NF]++{print $NF}' file
v1
v2
v3
v4