【发布时间】:2018-06-26 14:33:02
【问题描述】:
来自 bash 软件手册:
${parameter/pattern/string}模式被扩展以产生一个 模式就像在文件名扩展中一样。参数被扩展并且 模式与其值的最长匹配被替换为字符串。
...如果模式以'%'开头,它必须匹配 在参数扩展值的末尾。
所以我试过了:
local new_name=${file/%old/new}
其中 string 是绝对文件路径(/abc/defg/hij 和 old 和 new 是可变字符串。
然而,这似乎试图匹配文字 %sb1。
这个的语法是什么?
预期输出:
给定
old=sb1
new=sb2
然后
/foo/sb1/foo/bar/sb1 应该变成/foo/sb1/foo/bar/sb2
/foo/foosb1other/foo/bar/foosb1bar 应该变成/foo/foosb1other/foo/bar/foosb2bar
【问题讨论】:
-
@anubhava 很快改变了那里的要求,因为我意识到我真正需要什么,尽管它也可以与文字一起使用。
标签: bash shell pattern-matching substring variable-expansion