Remplacer tous les caractères spéciaux par des underscores
echo 'chaine comportant des caractéres bizarres !' | sed -e 's/[^A-Za-z0-9._-]/_/g'
Renverra :
chaine_comportant_des_caractéres_bizarres__
Ne pas hésiter à adapter la regexp pour donner la liste des caractères autorisés (et donc non convertis).
Source : http://serverfault.com/a/348485/15454