我正试图从git标签信息中提取项目名称和版本。一个示例标记如下所示:atlantis/v12
。我们需要将第一组作为项目名称分离出来,即。atlantis
和第二个版本ie。v12
.
尝试这样做git describe --tag | grep -P (.*).*(v[0-9]*)| awk {1}
会导致zsh: unknown file attribute: v
,并且使用bashsyntax error near unexpected token
(' '。我需要帮助来理解我可能做错了什么?
您忘记在grep中引用-P
的参数,zsh认为尝试对它们进行文件名扩展是它的责任。必须写成
grep -P '(.*).*(v[0-9]*)'
除此之外,你的regexp说:匹配任何东西的零个或多个字符,后面跟着任何东西的零个或多个字符,后面跟着零个或多个由v
组成的字符串,添加了零个或多个数字。因此,您的regexp将匹配输入中的任何一行。
由于您已经在使用awk:
git describe --tag | awk -F/ '{ print "Project: "$1;print "Version: "$2 }'
设置分隔为"/"然后打印第一个字段作为项目,第二个字段作为版本。