(zsh大括号扩展| seq)用于角色列表 - 怎么样?

时间:2010-03-07 01:05:38

标签: zsh character brace-expansion seq

Bash允许我编写语句

$ for i in {h..k} ; do echo $i ; done

但是zsh只允许数字列表扩展,例如{8..13}

什么是最好的解决方法?像 seq 这样的字符......

2 个答案:

答案 0 :(得分:26)

zsh$ setopt BRACE_CCL
zsh$ echo {a-k}
a b c d e f g h i j k
zsh$ echo {1-9}
1 2 3 4 5 6 7 8 9

答案 1 :(得分:5)

由于这仍然是谷歌的最高结果,因此更新了答案:

current release支持bash样式{c1..c2},其中c1c2是字符:

  

{c1..c2}”形式的表达式,其中c1c2是单个字符(可能是多字节字符),会扩展为{{1}范围内的每个字符1}}到c1内部使用的任何字符序列。对于代码点低于128的字符,这是US ASCII(这是大多数用户需要的唯一情况)。如果任何插入字符不可打印,则使用适当的引用使其可打印。如果字符序列反转,则输出的顺序相反,例如“c2”被替换为“{d..a}”。

这绝对存在于5.0.7之后。我似乎无法在zsh release history中找到这个,但first archived version documenting it表示它是在2012年7月到2014年11月之间推出的。