当前位置: 首页 > 知识库问答 >
问题:

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

上官羽
2023-03-14

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

例如,假设我有以下值:

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

如何得到以下结果?

result="o-wor"

共有1个答案

羊舌墨一
2023-03-14
$ foo=${string#"$prefix"}
$ foo=${foo%"$suffix"}
$ echo "${foo}"
o-wor

这在手册的“外壳参数展开”部分中有详细说明:

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

该词被展开以产生一个模式,并根据下面描述的规则进行匹配(参见模式匹配)。如果模式与参数展开值的开头匹配,则展开的结果是删除了最短匹配模式(#大小写)或最长匹配模式(##大小写)的参数展开值。[…]

${Parameter%Word}
${Parameter%Word}

该词被展开以产生一个模式,并根据下面描述的规则进行匹配(参见模式匹配)。如果模式与参数展开值的尾随部分匹配,则展开的结果是删除了最短匹配模式(%大小写)或最长匹配模式(%%大小写)的参数值。[…]

 类似资料:
  • 假设我的字符串是10个字符长。 如何删除最后一个字符? 如果我的字符串是(我不想替换字符,因为我的字符串可能包含多个字符),我只想删除最后一个字符。不管它是什么或者它发生了多少次,我都需要从我的字符串中移除最后一个字符。

  • 问题内容: 删除字符串的前三个字符的最有效方法是什么? 例如: 问题答案: 只需使用子字符串:将返回

  • 问题内容: 我正在尝试使用Python从字符串中删除特定字符。这是我现在正在使用的代码。不幸的是,它似乎对字符串没有任何作用。 如何正确执行此操作? 问题答案: Python中的字符串是不可变的(无法更改)。因此,的效果只是创建一个新字符串,而不是更改旧字符串。你需要重新绑定(分配)到line该变量,以使该变量采用新值,并删除这些字符。 而且,相对而言,你的操作方式会比较缓慢。这也可能会使经验丰富

  • 问题内容: 我有一个像这样的数组: 我要做的是删除“苹果”。 我的问题很基本,但是,我搜索了网站,发现java并不真正支持从数组中删除功能。我还听说过使用Java Utils,因为删除项目非常简单…。我试图在Google上找到Java Utils,但是几乎所有链接都消失了。 所以最后…有什么方法可以从字符串数组中删除字符串? 即使我使用ArrayList,也找不到在其中生成随机项的方法!例如:在普

  • 问题内容: 从字符串中删除最后一个字符的最快方法是什么? 我有一个像 我想删除最后一个’,’并取回剩下的字符串: 最快的方法是什么? 问题答案: 首先,我尝试没有空格,并得到一个错误结果。 然后,我添加一个空格并获得良好的结果:

  • 问题内容: 假设我有来自Input的带有名称的字符串(例如:)。如何从输入开始删除称呼? 可能出现的称呼清单是: 任何解决方案或正则表达式声明都可以考虑所有这些称呼? 我尝试了这个: 它正在工作,但是就象名字一样,它正在删除。 问题答案: 您可以使用 参见正则表达式演示 图案细节 -忽略大小写的选项 -字符串开始 -0+空格 - 其次有,,,,或或(可能更长时间后添加这里) -字边界 -0或多个空