【问题标题】:BASH: Get text before string [duplicate]BASH:在字符串之前获取文本[重复]
【发布时间】:2017-02-04 22:37:53
【问题描述】:

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

【问题讨论】:

标签: bash shell


【解决方案1】:

您可以使用% 或%% 运算符:

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

这将删除最长的后缀。

见bash reference manual:

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

单词被扩展以产生一个模式,就像在文件名扩展中一样。如果模式匹配扩展的尾随部分 参数的值,那么展开的结果就是 参数 具有最短匹配模式('%' 情况)或 最长匹配模式(“%%”案例)已删除。如果参数是'@' 或‘*’,模式移除操作应用于每个位置 依次参数,展开是结果列表。如果 parameter 是下标为“@”或“*”的数组变量, 模式移除操作应用于数组的每个成员 转,展开就是结果列表。

【讨论】:

  • 谢谢你,它就像一个魅力!
猜你喜欢
  • 2019-10-05
  • 2021-07-26
  • 2018-04-14
  • 2013-08-12
  • 1970-01-01
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多