diff --git a/.scripts/passwordGenerator.py b/.scripts/passwordGenerator.py new file mode 100755 index 0000000..3d8d900 --- /dev/null +++ b/.scripts/passwordGenerator.py @@ -0,0 +1,36 @@ +#! /usr/bin/env python + +import string +import random +from random import sample + +def randChar(nb): + specialChar = ",?!'=()%*+/_.-[]#@{}" + charList = specialChar+string.digits+string.ascii_letters + s = sample(charList, nb) + for i in range(nb): + if random.random() < 0.2: + s[i] = s[i]+sample(charList, 1)[0] + return s + +def randTab(x,y): + tab = [] + for i in range(y): + tab.insert(len(tab), []) + tab[i] = randChar(x) + return tab; + +def printtab(tab): + f = open('test.out', 'w') + for i in range(len(tab[0])): + f.write('\t'+str(i)) + for i in range(len(tab)): + f.write('\n'+string.ascii_uppercase[i*2:(i+1)*2]) + for j in range(len(tab[i])): + f.write('\t'+tab[i][j]) + f.write('\n') + f.close() + +tab = randTab(10,13) +printtab(tab) + diff --git a/.scripts/removeAcc.sh b/.scripts/removeAcc.sh new file mode 100755 index 0000000..96f4761 --- /dev/null +++ b/.scripts/removeAcc.sh @@ -0,0 +1,154 @@ +#!/bin/bash + +# Copyright (C) 13/12/2013 Gregory Trolliet +# Permission is granted to copy, distribute and/or modify this document +# under the terms of the GNU Free Documentation License, Version 1.3 +# or any later version published by the Free Software Foundation; +# with no Invariant Sections, no Front-Cover Texts, and no Back-Cover +# Texts. A copy of the license is included in the section entitled ``GNU +# Free Documentation License''. +# +# Created: 11/01/2009 Thomas 134 +# Modified: +# -24/03/2009 Thomas 134 +# -13/12/2013 Gregory Trolliet +# +# Script permettant de renommer des fichiers et dossiers en remplacant une liste +# de caractères + + +#### DEUX REMARQUES IMPORTANTES #### + +# Attention, pour virer les mauvais caractères, ce script doit pouvoir les +# lires ! +# Pas d'autre solutions trouvées à l'heure actuelle. +# Donc il faut paramètrer les "locales" pour lire le format iso +# Dans Mandriva il faut aller dans le centre de controle > Système > Gérer les +# paramètre +# locaux de votre système > Avancé > Compatibilité encodage ancien (non UTF8) + +# Attention, pour fonctionner correctement, ce script doit être encodé de la +# même façon que les caractères cibles ! +# Il est normalement distribué en UTF8, qui est l'encodage des distributions +# linux récentes. +# Cependant, le but de ce fichier est de supprimer les caractères accentués +# dans les anciens encodages. +# Il faut donc le convertir dans l'encodage recherché avec la commande +# suivante : +# $ iconv -f utf-8 -t iso-8859-1 accent_iso8859.sh +# Ne pas oublier après de le rendre exécutable ! +# Pour le remettre en UTF8 (ben oui pour virer les accents même ceux qui +# sont bien encodés) : +# $ iconv -f iso-8859-1 -t utf-8 accent_utf8.sh +# Pour connaitre l'encodage d'un fichier avec caractètre accentué (ou de +# celui ci avant exécution) : +# $ file -i FICHIER.TXT + +#### DECLARATION VARIABLES #### + +# Liste des caractères à remplacer +ACC=àâäåçéèêëîïíìôöùüÂÀÄÇÉÈÊËÎÏÔÖÙÜ~#: +# Liste des caractères remplaçants +RMP=aaaaceeeeiiiioouuAAACEEEEIIOOUU___ +# Initialisation d'un compteur +COMPT=0 +# Initialisation d'une variable +END=1 +# Création de la variable TEMP qui prend la valeur d'une commande (` `) +# permettant de créer un fichier temporaire « unique » dans le +# répertoire /tmp (mktemp) +TEMP=`mktemp` + +#### CREATION FONCTIONS #### + +# Création d'une fonction (Confirmation) qui demande une confirmation au clavier +Confirmation () { + echo + CONF="x" + while [ `echo $CONF | sed 's/^[oOnNqQ]\?$/ok/'` != "ok" ] + do + echo "Etes vous d'accord pour continuer (O/n) ?" + read CONF + done + # Attend la saisie d'un paramètre (read) qui sera enregistré dans une variable + # (nommée CONF) + # Teste si la réponse est différente de o et abandonne l'exécution dans ce cas + case $CONF in + "o"|"O"|"" ) + ;; + * ) + echo "Exécution abandonné." + exit 0 + ;; + esac +} + +# Création d'une fonction (Remplacer) dont le paramètre est le type d'élément à +# traiter : d pour dossier et f pour fichier +Remplacer () { + # Cherche (find) dans le répertoire à parcourir ($REP) tous les fichiers ou + # dossier (-type $1) + # dont le nom (-name) contient un des caractères à remplacer (*[$ACC]*) et les + # écrit (>) dans un fichier ($TEMP) + find $REP -type $1 -name "*[$ACC]*" > $TEMP + + # Test qui fait que si Temp est vide on zappe la confirmation et on passe un + # paramètre (END=0) à la fonction plus bas pour arréter de boucler sur + # les dossiers + if [ -n "$(cat $TEMP)" ] + then + # Renvoi la liste et demande confirmation de l'exécution du remplacement + echo "Liste des éléments à traiter :" + cat $TEMP + # Demande de confirmation (appel de la fonction Confirmation) + Confirmation + # Prend le fichier donné en argument (< $TEMP) et lit (read) toutes les + # lignes (i) tant qu'il y en a (while) + # Pour chaque ligne fait l'action (do) de renommer (mv) en mode interactif + # et verbeux (-iv) et renomme (et non déplace) les dossiers (T) + # Le fichier de départ ("$i") est renommé en remplaçant (sed) les + # caractères contenus dans la liste (ACC) par ceux de la seconde liste (RMP) + while read i ; do + #cp -ivR "$i" "$i"_acc134\/" # sauvegarde des fichiers ?? + mv -ivT "$i" "$(echo $i | sed 'y/'$ACC'/'$RMP'/')" + + let "COMPT = $COMPT + 1" + done < $TEMP + # Avant du supprimer Temp, faire un fichier de log qui conserve en + # mémoire les changements effectués et leur date + # Supprime (rm) le fichier temporaire créé (TEMP) + rm $TEMP + else + END=0 + fi +} + +#### MESSAGES DE DEBUT DU SCRIPT #### +# Message d'explication et rappel des paramètres +echo +echo "Cette commande permet de renommer des fichiers et dossiers en remplacant " +echo "une liste de caractères." +# Le répertoire est passé en paramètre +REP=$1 +# Demande de confirmation (appel de la fonction Confirmation) +Confirmation +#### EXECUTION DES REMPLACEMENTS #### +# Traitement des dossiers dans un premier temps +# Tant que (while) il reste des dossiers contenant des caractères recherchés +# (varible END non vide) +while [ "$END" -eq 1 ] ; do + echo + echo "** Traitement des dossiers **" + # Appel de la fonction pour traitement des dossiers (d) + Remplacer d +done +# Une fois les dossiers traités, vient le tour des fichiers (moins de +# problème dans ce cas seul leur noms change et pas leur dossier parent) +echo +echo "** Traitement des fichiers **" +# Appel de la fonction pour traitement des fichiers (f) +Remplacer f +# Message de fin indiquant le nombre de remplacements +echo "$COMPT remplacement(s) effectué(é)." +# Sortie du script +exit 0 diff --git a/.scripts/removeDotDir.sh b/.scripts/removeDotDir.sh new file mode 100755 index 0000000..dc75cbf --- /dev/null +++ b/.scripts/removeDotDir.sh @@ -0,0 +1,148 @@ +#!/bin/bash + +# Copyright (C) 13/12/2013 Gregory Trolliet +# Permission is granted to copy, distribute and/or modify this document +# under the terms of the GNU Free Documentation License, Version 1.3 +# or any later version published by the Free Software Foundation; +# with no Invariant Sections, no Front-Cover Texts, and no Back-Cover +# Texts. A copy of the license is included in the section entitled ``GNU +# Free Documentation License''. +# +# Created: 11/01/2009 Thomas 134 +# Modified: +# -24/03/2009 Thomas 134 +# -13/12/2013 Gregory Trolliet +# +# Script permettant de renommer des fichiers et dossiers en remplacant une liste +# de caractères + + +#### DEUX REMARQUES IMPORTANTES #### + +# Attention, pour virer les mauvais caractères, ce script doit pouvoir les +# lires ! +# Pas d'autre solutions trouvées à l'heure actuelle. +# Donc il faut paramètrer les "locales" pour lire le format iso +# Dans Mandriva il faut aller dans le centre de controle > Système > Gérer les +# paramètre +# locaux de votre système > Avancé > Compatibilité encodage ancien (non UTF8) + +# Attention, pour fonctionner correctement, ce script doit être encodé de la +# même façon que les caractères cibles ! +# Il est normalement distribué en UTF8, qui est l'encodage des distributions +# linux récentes. +# Cependant, le but de ce fichier est de supprimer les caractères accentués +# dans les anciens encodages. +# Il faut donc le convertir dans l'encodage recherché avec la commande +# suivante : +# $ iconv -f utf-8 -t iso-8859-1 accent_iso8859.sh +# Ne pas oublier après de le rendre exécutable ! +# Pour le remettre en UTF8 (ben oui pour virer les accents même ceux qui +# sont bien encodés) : +# $ iconv -f iso-8859-1 -t utf-8 accent_utf8.sh +# Pour connaitre l'encodage d'un fichier avec caractètre accentué (ou de +# celui ci avant exécution) : +# $ file -i FICHIER.TXT + +#### DECLARATION VARIABLES #### + +# Liste des caractères à remplacer +ACC=. +# Liste des caractères remplaçants +RMP=_ +# Initialisation d'un compteur +COMPT=0 +# Initialisation d'une variable +END=1 +# Création de la variable TEMP qui prend la valeur d'une commande (` `) +# permettant de créer un fichier temporaire « unique » dans le +# répertoire /tmp (mktemp) +TEMP=`mktemp` + +#### CREATION FONCTIONS #### + +# Création d'une fonction (Confirmation) qui demande une confirmation au clavier +Confirmation () { + echo + CONF="x" + while [ `echo $CONF | sed 's/^[oOnNqQ]\?$/ok/'` != "ok" ] + do + echo "Etes vous d'accord pour continuer (O/n) ?" + read CONF + done + # Attend la saisie d'un paramètre (read) qui sera enregistré dans une variable + # (nommée CONF) + # Teste si la réponse est différente de o et abandonne l'exécution dans ce cas + case $CONF in + "o"|"O"|"" ) + ;; + * ) + echo "Exécution abandonné." + exit 0 + ;; + esac +} + +# Création d'une fonction (Remplacer) dont le paramètre est le type d'élément à +# traiter : d pour dossier et f pour fichier +Remplacer () { + # Cherche (find) dans le répertoire à parcourir ($REP) tous les fichiers ou + # dossier (-type $1) + # dont le nom (-name) contient un des caractères à remplacer (*[$ACC]*) et les + # écrit (>) dans un fichier ($TEMP) + find $REP -type $1 -name "*[$ACC]*" > $TEMP + + # Test qui fait que si Temp est vide on zappe la confirmation et on passe un + # paramètre (END=0) à la fonction plus bas pour arréter de boucler sur + # les dossiers + if [ -n "$(cat $TEMP)" ] + then + # Renvoi la liste et demande confirmation de l'exécution du remplacement + echo "Liste des éléments à traiter :" + cat $TEMP + # Demande de confirmation (appel de la fonction Confirmation) + Confirmation + # Prend le fichier donné en argument (< $TEMP) et lit (read) toutes les + # lignes (i) tant qu'il y en a (while) + # Pour chaque ligne fait l'action (do) de renommer (mv) en mode interactif + # et verbeux (-iv) et renomme (et non déplace) les dossiers (T) + # Le fichier de départ ("$i") est renommé en remplaçant (sed) les + # caractères contenus dans la liste (ACC) par ceux de la seconde liste (RMP) + while read i ; do + #cp -ivR "$i" "$i"_acc134\/" # sauvegarde des fichiers ?? + mv -ivT "$i" "$(echo $i | sed 'y/'$ACC'/'$RMP'/')" + + let "COMPT = $COMPT + 1" + done < $TEMP + # Avant du supprimer Temp, faire un fichier de log qui conserve en + # mémoire les changements effectués et leur date + # Supprime (rm) le fichier temporaire créé (TEMP) + rm $TEMP + else + END=0 + fi +} + +#### MESSAGES DE DEBUT DU SCRIPT #### +# Message d'explication et rappel des paramètres +echo +echo "Cette commande permet de renommer des fichiers et dossiers en remplacant " +echo "une liste de caractères." +# Le répertoire est passé en paramètre +REP=$1 +# Demande de confirmation (appel de la fonction Confirmation) +Confirmation +#### EXECUTION DES REMPLACEMENTS #### +# Traitement des dossiers dans un premier temps +# Tant que (while) il reste des dossiers contenant des caractères recherchés +# (varible END non vide) +while [ "$END" -eq 1 ] ; do + echo + echo "** Traitement des dossiers **" + # Appel de la fonction pour traitement des dossiers (d) + Remplacer d +done +# Message de fin indiquant le nombre de remplacements +echo "$COMPT remplacement(s) effectué(é)." +# Sortie du script +exit 0