从变量中删除之前并包括某个子字符串的所有内容
Posted
技术标签:
【中文标题】从变量中删除之前并包括某个子字符串的所有内容【英文标题】:Delete everyting preceding and including a certain substring from variable 【发布时间】:2017-03-23 06:03:16 【问题描述】:在 Bash 中,如何从变量中删除字符直到某个子字符串?
例子:
ananas1kiwi2apple1banana2tree
应该是这样的:
apple1banana2tree
本例中的子字符串为2
。
【问题讨论】:
【参考方案1】:如果要删除直到2
的子字符串,使用bash
参数扩展:
$var#*2
#
从左到右进行非贪婪匹配,使用##
表示贪婪
#*2
匹配并丢弃变量 var
中的第一个 2
示例:
$ var='ananas1kiwi2apple1banana2tree'
$ echo "$var#*2"
apple1banana2tree
【讨论】:
【参考方案2】:使用纯bash
shell parameter expansion。
$ string="ananas1kiwi2apple1banana2tree"
$ newString="$string#*2"
$ printf "%s\n" "$newString"
apple1banana2tree
【讨论】:
以上是关于从变量中删除之前并包括某个子字符串的所有内容的主要内容,如果未能解决你的问题,请参考以下文章