Минимизация получающейся строки может быть выполнена разными способами, но, поскольку вы упомянули Bash, я выберу способ Bash, который не является наиболее оптимизированным.
Да, есть способ Bash!Создатели Bash включили его в команду readline complete-into-braces
.При использовании Bash в интерактивном режиме, если вы нажмете Meta { (что означает либо Alt {, либо Esc - затем- { на моей машине), все возможные дополнения сгруппированы в одно расширение скобок.
$ echo /usr/
bin/ games/ include/ lib/ local/ sbin/ share/ src/
$ echo /usr/{bin,games,include,l{ib,ocal},s{bin,hare,rc}}
Выше, когда я впервые нажал Tab , чтобы показать всевозможные завершения, и во второй раз я нажимаю Alt {.
Возвращаясь к вашему вопросу: вы ищете алгоритм.Очевидно, что вы можете найти что-то в исходном коде Bash .Функция, которую вы ищете: really_munge_braces()
in bracecomp.c