小编典典

从 Bash 中的字符串中删除固定的前缀/后缀

all

在我的bash脚本中,我有一个字符串及其前缀/后缀。我需要从原始字符串中删除前缀/后缀。

例如,假设我有以下值:

string="hello-world"
prefix="hell"
suffix="ld"

我如何得到以下结果?

result="o-wor"

阅读 135

收藏
2022-03-04

共1个答案

小编典典

$ foo=${string#"$prefix"}
$ foo=${foo%"$suffix"}
$ echo "${foo}"
o-wor

这记录在手册的Shell Parameter
Expansion
部分:

${parameter#word}
${parameter##word}

该词被扩展以产生一个模式并根据下面描述的规则进行匹配(请参阅模式匹配)。如果模式匹配参数扩展值的开头,则扩展的结果是删除了最短匹配模式(#案例)或最长匹配模式(案例)的参数扩展值。##

2022-03-04