Git 剪切bash中包含“/”的字符串的第一部分
在bash脚本中,我想剪切一个分支名称。 分支名称始终类似于:origin/X.X.X-name 我想切割原点/零件,以便使用X.X.X-name 这就是我所尝试的: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} 此表单用于删除试图从字符串开头匹配的
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"