2017-02-04 16 views
-3

如何在Bash中的分隔符字符串之前获取文本?喜欢: str="Hello World! It's a nice Day!"我需要得到nice之前的一切。 echo $str应该告诉我Hello World! It's a 谢谢BASH:在字符串之前获取文本

+1

https://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion – melpomene

回答

2

可以使用%%%操作:

$ str="Hello World! It's a nice Day!" ; echo "<${str%%nice *}>" 
<Hello World! It's a> 

这将删除最长的后缀。

bash reference manual

${parameter%word}
${parameter%%word}

被膨胀,以产生一个模式,就像在文件名扩展。如果图案参数的膨胀 值的尾部匹配,则扩展的结果是 参数用最短的匹配(“%”情况下)或 最长的匹配的值( '%%'的情况)被删除。如果参数是'@' 或'*',则将模式移除操作依次应用于每个位置 参数,并且扩展是结果列表。如果 参数是与“@”或“*”,下标数组变量的 图案去除操作被施加到在 依次阵列的每个成员,并且膨胀为结果的列表。

+0

谢谢,它的功能就像一个魅力! – Chris

相关问题