我有一个看起来像
的bash字符串TEST="tags/1.2.3-abc"
我希望在斜杠之后提取部分,即“1.2.3-abc”当且仅当字符串以短语“tags /”开头时。如果后者不是这种情况,我希望字符串不变。
示例:
Input: tags/1.2.3-abc Output: 1.2.3-abc
Input: 1.2.3-abc Output: 1.2.3-abc
Input: trunk Output: trunk
答案 0 :(得分:5)
听起来像是Bash中替换运营商的工作。
尝试类似:
TEST="tags/1.2.3-abc"
echo ${TEST#tags/}
您可以在此处详细了解此语法:http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion
答案 1 :(得分:0)
除了剪切命令,你还可以使用bash字符串操作来解决你的问题
TEST='tags/1.2.3-abc';
if test ${TEST#tags/*}; #Test that $TEST contains "tags/*" expression
then
TEST=${TEST:5}; #Re-assign to $TEST the substring after the "tags/"
fi