如何在shell脚本中提取特定的组?



我正试图从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 }'

设置分隔为"/"然后打印第一个字段作为项目,第二个字段作为版本。

相关内容

  • 没有找到相关文章

最新更新