在bash脚本中,我想剪切一个分支名称。
分支名称总是如下:guard let vc = storyboard?.instantiateViewController(withIdentifier: "nameVC") else {
return
}
// add to current view
view.addSubview(vc.view)
我想剪切origin/X.X.X-name
部分,以便我可以使用origin/
。
这就是我的尝试:
X.X.X-name
输出为TEST=origin/1.1.1-name
echo "${TEST//origin/}";
如何使用与我现在所做的相同的方法在开始时摆脱/1.1.1-name
。我不喜欢开始切割等。
答案 0 :(得分:4)
只需在bash
test=origin/1.1.1-name
printf "%s\n" "${test##*/}"
1.1.1-name
从子字符串删除下的Parameter-expansion documentation开始。
${PARAMETER##PATTERN}
此表单用于删除描述的模式,尝试从字符串的开头匹配它。操作员
#
将尝试删除与模式匹配的最短文本,而##
尝试使用最长文本匹配执行此操作。
您还可以使用正则表达式运算符bash
提供(相对较新版本的bash
)来匹配字符串。
[[ $test =~ /(.*)$ ]] && printf "%s\n" "${BASH_REMATCH[1]}"
当然,您也可以使用第三方shell实用程序,例如使用cut
cut -d/ -f2 <<<"$test"
意味着使用去限制器/
剪切第二个字段(-f2
)。