Bash può generare più stringhe da single, se si utilizza la sintassi {..., ...}. Come qui:Come generare una stringa per l'espansione delle parole bash?
$ echo pgdb{200,10{0,1}}
pgdb200 pgdb100 pgdb101
Esiste un modo per prendere una lista di stringhe e produrre (si spera più breve) stringa che, dopo l'elaborazione attraverso l'espansione di parola bash produrrà lista originale (non necessariamente nell'ordine originale
? Ad esempio, mi piacerebbe questo strumento/algoritmo, che data:
- PostgreSQL
- mysql
- Postgres
- Miata
produrrebbero (per esempio): {postgres{ql,},m{iata,ysql}}
Avevo pensato di usare trie per rappresentare stringhe di input, ma non riesco a capire come elaborare questo trie per costruire stringa di output.
L'espansione del brace è destinata all'uso interattivo per ridurre la quantità di digitazione che è necessario eseguire. Se hai già la lista dei nomi in un modulo che potresti alimentare con uno strumento del genere, usa questa lista. Ridurlo a un'espansione minima di parentesi graffa solo la leggibilità. – chepner
Ciò richiederebbe l'analisi e il confronto di ogni carattere di ogni parola e sarebbe molto più semplice del semplice utilizzo della lista predeterminata. –
@chepner my usecase serve per generare la lista in un posto e usarla in un'altra. In modo interattivo. Non riesco a scp la lista facilmente come entrambi i posti sono dietro firewall e nats diversi. – someone