如何在命令shell中对输出进行分组

时间:2015-07-07 05:50:13

标签: git shell

当我在linux终端中运行git tag命令时,我输出为

bssg-v1.0-alpha.0.1
bssg-v1.0-alpha.0.2
bssg-v1.0-alpha.0.3
bssg-v1.0-alpha.0.4
dummy
opal-0.5
opal-0.6
pisn_final
pisn_v1.2
pisn_v1.2.1
pisn_v1.2.2
pisn_v1.3
pisn_v1.3.1
pisn_v1.3.2
pisn_v1.3.3
pisn_v1.3.4
ralp_0.1
ralp_0.2
ralp_0.3
ralp_0.4
ralp_0.4.1
ralp_0.4.2
salp-v0.1-alpha.0.1
salp-v0.1-alpha.0.2
salp-v0.1-alpha.0.3
salp-v0.1-alpha.0.4
tms-1a-0.3
tms-1a-0.4

我想要的是这种输出......

bssg
dummy
opal
pisn
ralp
salp
tms

即在运行git tag时,我应该只在任何' - '之前获得字符。或者' _'那也只有一次。 我怎么能这样做.. ???

1 个答案:

答案 0 :(得分:3)

git tag本身似乎没有那种过滤能力 (即使its sort ordering did improve recently

但是shell(即使在Windows上,使用git for windows打包的那个)

git tag|sed "s/\([^-_]*\)[-_].*/\1/g"|sort|uniq