Bash może generować wiele ciągów z pojedynczego, jeśli używasz składni {..., ...}. Jak tutaj:Jak wygenerować ciąg dla rozszerzenia tekstu bash?
$ echo pgdb{200,10{0,1}}
pgdb200 pgdb100 pgdb101
Czy jest jakiś sposób, aby zrobić listę ciągów i produkować (oby krótszy) ciąg znaków, na przetwarzanie przez ekspansji słowo bash będzie produkować oryginalnej listy (niekoniecznie w oryginalnej kolejności
? na przykład, chciałbym to narzędzie/algorytm, że biorąc pod uwagę:
- postgresql
- mysql
- postgres
- Miata
przyniosłoby (na przykład): {postgres{ql,},m{iata,ysql}}
Myślałem o użyciu Trie do reprezentowania ciągów wejściowych, ale nie można dowiedzieć się, jak przetworzyć ten Trie zbudować ciąg wyjściowy.
Rozszerzanie nawiasów jest przeznaczone do interaktywnego użytku w celu zmniejszenia liczby pisowni, którą musisz wykonać. Jeśli masz już listę nazwisk w formularzu, który możesz podać do takiego narzędzia, po prostu skorzystaj z tej listy. Zmniejszenie jej do minimalnego rozszerzenia nawiasów tylko szkodzi czytelności. – chepner
Wymagałoby to analizowania i porównywania każdej litery każdego słowa i byłoby znacznie trudniejszym zadaniem niż po prostu użycie wcześniej ustalonej listy. –
@chepner my usecase służy do generowania listy w jednym miejscu i używania jej w innym. Interaktywnie. Nie mogę łatwo wyczyścić listy, ponieważ oba miejsca znajdują się za różnymi zaporami ogniowymi i naty. – someone