【发布时间】:2017-03-23 06:03:16
【问题描述】:
在 Bash 中,如何从变量中删除字符直到某个子字符串?
例子:
ananas1kiwi2apple1banana2tree
应该是这样的:
apple1banana2tree
本例中的子字符串为2。
【问题讨论】:
在 Bash 中,如何从变量中删除字符直到某个子字符串?
例子:
ananas1kiwi2apple1banana2tree
应该是这样的:
apple1banana2tree
本例中的子字符串为2。
【问题讨论】:
如果要删除直到2 的子字符串,使用bash 参数扩展:
${var#*2}
# 从左到右进行非贪婪匹配,使用## 表示贪婪
#*2 匹配并丢弃变量 var 中的第一个 2
示例:
$ var='ananas1kiwi2apple1banana2tree'
$ echo "${var#*2}"
apple1banana2tree
【讨论】:
使用纯bashshell parameter expansion。
$ string="ananas1kiwi2apple1banana2tree"
$ newString="${string#*2}"
$ printf "%s\n" "$newString"
apple1banana2tree
【讨论】: