2010-03-07 13 views

Odpowiedz

4

Ponieważ jest to nadal wynik google top, uaktualniony odpowiedź:

current release obsługuje bash styl {c1..c2} gdzie c1 i c2 są znaki:

Wyrażenie w postaci "{c1..c2}", gdzie c1 i c2 są pojedynczymi znakami (może to być wielobajtowy cha znaki), jest rozszerzany na każdy znak w zakresie od c1 do c2, niezależnie od tego, jaka sekwencja znaków jest używana wewnętrznie. W przypadku znaków z punktami kodowymi poniżej 128 jest to ASCII w USA (jest to jedyny przypadek wymagany przez większość użytkowników). Jeśli jakikolwiek znak pośredni nie jest możliwy do wydrukowania, stosuje się odpowiednią ofertę, aby umożliwić jej drukowanie. Jeśli sekwencja znaków jest odwrócona, wyjście jest w odwrotnej kolejności, np. "{d..a}" zastępuje się "d c b a".

Jest to zdecydowanie obecne w wersji 5.0.7. I nie wydaje się znaleźć, gdy ten został wprowadzony w zsh release history, ale first archived version documenting it wskazuje, że została wprowadzona w okresie od lipca 2012 do listopada 2014 roku

+3

Mogę potwierdzić, że ta funkcja jest * nie * w wersji 5.0.5 (wersja dostarczana z systemem Mac OS X). – chepner

25
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 
+0

JFTR zsh git wskazuje, że 'brace_ccl' był obecny w początkowej popełnić co zostało zrobione w 1999 dla wersji 3.1.5 –

+0

Czy istnieje sposób, aby zakres jak '{1-12}' rozwinął się do '1 2 3 ... 9 10 11 12'? –

+0

@KedarMhaswade: Dlaczego składnia '{1..12} nie pasuje do twoich potrzeb? – mpy