【发布时间】:2022-01-06 06:42:23
【问题描述】:
如何使用 bash 从字符串中提取分支名称?例如,我有以下命令:
branch=$(git branch -a --contains $sha)
这可能会返回:
-
* branch-1.0(前缀始终是星号) -
branch-2.0 remotes/origin/branch-2.0(这里可能是换行而不是空格) -
master remotes/origin/master(这里可能是换行而不是空格)
我只需要分支名称(并且只需要一次)-master、branch-2.0 或 branch-1.0。我知道可以使用sed 命令来完成,但我不知道怎么做。
我使用以下正则表达式:(branch-[0-9].[0-9])|(master)
【问题讨论】:
-
我使用以下正则表达式::编写完整的 sed 命令,而不是仅仅提及您正在使用的内容。此外,写下您从 sed 命令中获得的输出。
-
Simpy
git branch -a | cut -c2-丢弃前两列。 -
你可以做
git branch -a --format='%(refname:short)' --contains=$sha
标签: regex bash sed unix-text-processing text-capture