フィードのタイトルから、文字と数字を除くすべての文字をダッシュに置き換えて、ファイルシステムの安全なファイル名として結果を使用します。
$ 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
しかし、私はすべての繰り返しダッシュを次のように1つに凝縮したいと思います Episodie-06-No-hope-of-riding-home-NEW-Advanced-grammar
私は2パスの置換を使用してそれを達成できることを発見しました:
$ 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
私は次のような単一のパスでそれを行うことができると思いました:
$ echo ${t//[^A-Za-z0-9]+/-}
しかし、それは機能しません。
どんな手掛かり?
注:sed
他のツールと一緒に行きたくない
shopt
。それをどのシェルがサポートしているかをもっと知りたいだけです。