Git 剪切bash中包含“/”的字符串的第一部分

Git 剪切bash中包含“/”的字符串的第一部分,git,bash,Git,Bash,在bash脚本中,我想剪切一个分支名称。 分支名称始终类似于:origin/X.X.X-name 我想切割原点/零件,以便使用X.X.X-name 这就是我所尝试的: TEST=origin/1.1.1-name echo "${TEST//origin/}"; 输出为/1.1.1-name 我如何才能在一开始就使用与现在相同的方法摆脱/呢。我不喜欢开始切割等。只需在bash中使用参数展开即可 从这个子字符串删除下 ${PARAMETERPATTERN} 此表单用于删除试图从字符串开头匹配的

在bash脚本中,我想剪切一个分支名称。 分支名称始终类似于:origin/X.X.X-name 我想切割原点/零件,以便使用X.X.X-name

这就是我所尝试的:

TEST=origin/1.1.1-name

echo "${TEST//origin/}";
输出为/1.1.1-name
我如何才能在一开始就使用与现在相同的方法摆脱/呢。我不喜欢开始切割等。

只需在bash中使用参数展开即可

从这个子字符串删除下

${PARAMETERPATTERN}

此表单用于删除试图从字符串开头匹配的所述模式。操作员将尝试删除与模式匹配的最短文本,同时尝试使用最长文本匹配来删除

您还可以使用正则表达式操作符bash提供相对较新版本的bash来匹配字符串

[[ $test =~ /(.*)$ ]] && printf "%s\n" "${BASH_REMATCH[1]}"
当然,您也可以为此使用第三方shell util,例如使用cut


这意味着使用反限制器/剪切第二个字段-f2。

只需在bash中使用参数展开即可

从这个子字符串删除下

${PARAMETERPATTERN}

此表单用于删除试图从字符串开头匹配的所述模式。操作员将尝试删除与模式匹配的最短文本,同时尝试使用最长文本匹配来删除

您还可以使用正则表达式操作符bash提供相对较新版本的bash来匹配字符串

[[ $test =~ /(.*)$ ]] && printf "%s\n" "${BASH_REMATCH[1]}"
当然,您也可以为此使用第三方shell util,例如使用cut

意味着使用解除限制器/切断第二个字段-f2

cut -d/ -f2 <<<"$test"