Есть ли в bash подстановочный знак, точно совпадающий с 5 символами, сокращая ?????
8
Есть ли в bash подстановочный знак, точно совпадающий с 5 символами, сокращая ?????
Еще нет.
С помощью этой extglob
опции bash
добавляются некоторые ksh
расширенные операторы глобирования, но не {x,y}(pattern)
один.
В ksh93
, вы используете:
{5}(?)
С zsh
с extendedglob
опцией:
?(#c5)
(вы заметите, что ни один из них не короче, чем ?????
хотя бы).
В bash
, вы можете сделать:
$(printf '%.0s?' {1..5})
хотя это вряд ли улучшение и полагается на $IFS
не содержать ?
.
bash
(с этим также можно работать с ksh93 или zsh в эмуляции sh / ksh). Сbash
, вы можете использовать$(seq "$n" | tr -cd '\n' | tr '\n' '?')
вместо.$(yes '?' | tr -cd '?' | head -c $n)
- это весело. Кроме того, не могли бы вы удалить зависимость $ IFS, поместив ее в «кавычки»?split+glob
оператор (оставляя расширение без кавычек), но толькоglob
часть (вы хотите, чтобы этот?????
шаблон был расширен, что не произойдет если вы цитировали$(...)
). Обратите внимание, что вы используете этотsplit+glob
оператор в кавычках,$n
что добавляет еще одно требование, которое$IFS
не должно содержать цифр. Тот, который вы можете и должны процитировать.