0

我有一个看起来像的 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 
4

2 回答 2

5

听起来像是 Bash 中替换运算符的工作。

尝试类似:

TEST="tags/1.2.3-abc"
echo ${TEST#tags/}

您可以在此处阅读有关此语法的更多信息:http ://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion

于 2013-10-17T12:35:51.640 回答
0

除了 cut 命令,您还可以使用 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                      
于 2013-10-17T12:40:50.647 回答