【发布时间】:2017-02-04 22:37:53
【问题描述】:
如何在 Bash 中获取分隔符字符串之前的文本?喜欢:
str="Hello World! It's a nice Day!" 我需要在nice 之前得到所有东西。 echo $str 应该告诉我Hello World! It's a
谢谢
【问题讨论】:
如何在 Bash 中获取分隔符字符串之前的文本?喜欢:
str="Hello World! It's a nice Day!" 我需要在nice 之前得到所有东西。 echo $str 应该告诉我Hello World! It's a
谢谢
【问题讨论】:
您可以使用% 或%% 运算符:
$ str="Hello World! It's a nice Day!" ; echo "<${str%%nice *}>"
<Hello World! It's a>
这将删除最长的后缀。
${parameter%word}${parameter%%word}单词被扩展以产生一个模式,就像在文件名扩展中一样。如果模式匹配扩展的尾随部分 参数的值,那么展开的结果就是 参数 具有最短匹配模式('
%' 情况)或 最长匹配模式(“%%”案例)已删除。如果参数是'@' 或‘*’,模式移除操作应用于每个位置 依次参数,展开是结果列表。如果 parameter 是下标为“@”或“*”的数组变量, 模式移除操作应用于数组的每个成员 转,展开就是结果列表。
【讨论】: