从变量中删除前面和包含某个子字符串的所有内容
Delete everyting preceding and including a certain substring from variable
在 Bash 中,如何从变量中删除字符直到某个子字符串?
示例:
ananas1kiwi2apple1banana2tree
应如下所示:
apple1banana2tree
本例中的子串是2
.
如果要删除 2
之前的子字符串,使用 bash
参数扩展:
${var#*2}
#
从左边进行非贪婪匹配,使用 ##
进行贪婪
#*2
匹配并丢弃变量 var
中的第一个 2
示例:
$ var='ananas1kiwi2apple1banana2tree'
$ echo "${var#*2}"
apple1banana2tree
使用纯 bash
shell parameter expansion.
$ string="ananas1kiwi2apple1banana2tree"
$ newString="${string#*2}"
$ printf "%s\n" "$newString"
apple1banana2tree
在 Bash 中,如何从变量中删除字符直到某个子字符串?
示例:
ananas1kiwi2apple1banana2tree
应如下所示:
apple1banana2tree
本例中的子串是2
.
如果要删除 2
之前的子字符串,使用 bash
参数扩展:
${var#*2}
#
从左边进行非贪婪匹配,使用##
进行贪婪#*2
匹配并丢弃变量var
中的第一个
2
示例:
$ var='ananas1kiwi2apple1banana2tree'
$ echo "${var#*2}"
apple1banana2tree
使用纯 bash
shell parameter expansion.
$ string="ananas1kiwi2apple1banana2tree"
$ newString="${string#*2}"
$ printf "%s\n" "$newString"
apple1banana2tree