(расширение ZSH Brace | SEQ) для списков символов - как?
-
25-09-2019 - |
Вопрос
Bash позволяет мне написать заявление,
$ for i in {h..k} ; do echo $i ; done
Но ZSH позволяет только расширение номеров списка, как {8..13}
.
Какой лучший обходной путь? Что-то типа осевать Для персонажей ...
Решение
Как это все еще лучший результат Google, обновленный ответ:
То Текущий релиз Поддерживает стиль Bash {c1..c2}
куда c1
а также c2
являются персонажими:
Выражение формы '
{c1..c2}
', кудаc1
а такжеc2
являются одиночными символами (которые могут быть многобайтыми символами), расширяется до каждого символа в диапазоне отc1
кc2
В любую последовательность символов используется внутренне. Для персонажей с точками кода ниже 128 это США ASCII (это единственный случай, если понадобится большинство пользователей). Если какой-либо промежуточный символ не печатается, соответствующая цитата используется для рендеринга для него. Если последовательность символов обращена, вывод в обратном порядке, например,{d..a}
«заменен как»d c b a
’.
Это определенно присутствует в 5.0.7. Я не могу найти, когда это было введено в История выпуска ZSH, но Первая архивная версия, документируя это Указывает, что он был введен в период с июля 2012 года по ноябрь 2014 года.
Другие советы
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