我想做${(@s/<->/)param}
之类的事情,其中<->
是数字的模式。如果param=a567b38c898d
,那么我会(a b c d)
。
注意:这不是我想要解决的唯一案例,因此首选解决方案。
答案 0 :(得分:1)
我不确定你是否可以分割模式,仅限于文字文本。 (虽然这是zsh
,但我可能错了,只需要做更多的研究。)但是,我已经找到了如何使用替换修饰符来替换特定字符串的字符串,您可以随后将其拆分上。 (您需要设置hist_substpattern
选项以允许将模式作为替换运算符的左侧。仍然查看是否有方法仅为单个修饰符启用该模式。)
$ param=a567b38c898d
$ setopt hist_substpattern
$ print -l ${(s/1/)param:gs/<->/1}
a
b
c
d
首先,修饰符:gs/<->/1
用单个<->
替换匹配模式1
的每个字符串(即数字)。然后,扩展标记(s/1/)
将字符串拆分为.