如何在Bash中的分隔符字符串之前获取文本?喜欢:
str="Hello World! It's a nice Day!"
我需要在nice
之前获取所有内容。 echo $str
应该告诉我Hello World! It's a
谢谢
答案 0 :(得分:2)
您可以使用%
或%%
运算符:
$ str="Hello World! It's a nice Day!" ; echo "<${str%%nice *}>"
<Hello World! It's a>
这将删除最长的后缀。
${parameter%word}
${parameter%%word}
扩展字以生成与文件名扩展一样的模式。如果模式匹配展开的尾部 参数的值,则扩展的结果是值 具有最短匹配模式的参数(“
%
”情况)或 最长匹配模式(“%%
”案例)已删除。如果参数为“@
” 或“*
”,模式删除操作应用于每个位置 依次参数,扩展是结果列表。如果 参数是一个使用“@
”或“*
”下标的数组变量, 模式删除操作应用于数组的每个成员 转,并且扩展是结果列表。