Sto sostituendo, da un titolo di feed, tutti i caratteri tranne le lettere e le cifre con un trattino per utilizzare il risultato come nome file sicuro per qualsiasi file system:
$ t="Episodie 06: No hope of riding home (NEW) - Advanced grammar"
$ echo ${t//[^A-Za-z0-9]/-}
Episodie-06--No-hope-of-riding-home--NEW----Advanced-grammar
Comunque mi piacerebbe condensare tutti i trattini ripetuti con un solo like Episodie-06-No-hope-of-riding-home-NEW-Advanced-grammar
Ho scoperto che posso ottenerlo usando una sostituzione a due passaggi:
$ t="Episodie 06: No hope of riding home (NEW) - Advanced grammar"
$ tmp=${t//[^A-Za-z0-9]/-}
$ echo ${tmp//--/-}
Episodie-06-No-hope-of-riding-home-NEW--Advanced-grammar
Pensavo di poterlo fare in un unico passaggio come:
$ echo ${t//[^A-Za-z0-9]+/-}
ma non funziona.
Qualche idea?
Nota: non voglio andare con sed
o altri strumenti
shopt
e su quali shell lo supportano.