38 lines
1.0 KiB
Bash
38 lines
1.0 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# Aller dans le dossier passer en paramètre
|
||
|
cd $1
|
||
|
|
||
|
# Boucler sur les fichiers Markdown
|
||
|
for file in *.md; do
|
||
|
# Séparer le nom de l'extension
|
||
|
fileExtension="${file##*.}"
|
||
|
fileName="${file%.*}"
|
||
|
|
||
|
# Convertir les noms avec accents par ceux sans
|
||
|
fileName=$(echo $fileName | iconv -f utf8 -t ascii//TRANSLIT;)
|
||
|
|
||
|
# Passer en minuscule
|
||
|
fileName=$(echo $fileName | awk '{print tolower($0)}')
|
||
|
|
||
|
# Supprimer les caractères spéciaux
|
||
|
fileName=$(echo $fileName | sed $'s/\'/-/g')
|
||
|
fileName=$(echo $fileName | sed $'s/\,//g')
|
||
|
fileName=$(echo $fileName | sed $'s/[^.[:blank:][:alnum:]\t]-//g')
|
||
|
|
||
|
# Supprimer l'espace en fin de ligne
|
||
|
fileName=$(echo $fileName | sed 's/ \.md/\.md/g')
|
||
|
|
||
|
# Remplacer les espaces par des _
|
||
|
fileName=$(echo $fileName | sed 's/ /-/g')
|
||
|
|
||
|
# Créer le nouveau nom de fichier
|
||
|
sanitized="${fileName}.${fileExtension}"
|
||
|
|
||
|
# SI le nom du fichier a été assainit, ALORS renommer le fichier
|
||
|
[[ "${file}" != "${sanitized}" ]] && mv "${file}" "${sanitized}"
|
||
|
done
|
||
|
|
||
|
# Prendre en compte le changement
|
||
|
git add .
|