#!/bin/bash # Se rendre dans le dossier passé en argument cd $1 # Boucler sur les fichiers for file in *.md; do # Séparer le nom de l'extension fileExtension="${file##*.}" fileName="${file%.*}" # Remplacer les caractères accentués 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 les espaces inutiles fileName=$(echo $fileName | xargs) # Remplacer les espaces par des tirets fileName=$(echo $fileName | sed 's/ /-/g') # Construire le nom du fichier assainit sanitized="${fileName}.${fileExtension}" # SI le nom du fichier a été assainit if [[ "${file}" != "${sanitized}" ]]; then # Renommer le fichier mv "${file}" "${sanitized}" # Prendre en compte le changement git add "${sanitized}" "${file}" fi done