#! /bin/sh
#############################################################
#auteur : yarel.contrib@tiscali.fr
#remplace un caractere, d'un nom de fichier, par un autre
#ou
#plusieurs caracteres mais il faut le même nbr de caractère
#(ie: à remplacer et remplaçant)
#############################################################
nbrremplacer=0 #nombre de nom de fichier remplacer
echo -n "entrer le caractère à remplacer : "
read carorigine
#si pas de car à remplacer =exit
if [ -z $carorigine ] ; then
echo " vous devez entrer un caractère à remplacer"
exit 0
fi
echo -n "entre le caractère de remplacement : "
read newcar
#pour chaque nom de fichier passé en argument
for i in $@; do
#pour le caractère "#" qui oblige à mettre des crochets autour
if [ "$carorigine" = "#" ] ; then
newnom=${i/[$carorigine]/$newcar} #remplace dans '"i" "carorigine" par "newcar"
else
newnom=${i/$carorigine/$newcar}
fi
if [ -a $newnom ] ; then #si le nom obtenu est le même que celui du fichier (ie:remplacement déjà effectué)
mess=("pas de remplacement")
echo $newnom
continue;
else
mv $i $newnom #remplace
: $((nbrtotal+=nbrremplacer+1)) #incrémente le compteur de fichiers remplacés
mess=("il y a "$nbrtotal" fichiers remplacés")
fi
done
echo $mess #le résultat
#!/bin/sh
#####################################################
#auteur : yarel.contrib@tiscali.fr
#convertie la taille des images passées en parametre
#(img.jpg ou *.jpg)
#nécessite ImageMagik
#####################################################
echo -n "tapez le pourcentage de réduction "
read pourcentage
#si pas de % d'indiquer par default 50%
if [ -z $pourcentage ] ; then
pourcentage=50
fi
for i in $@;do
convert -resize $pourcentage% $i $i
echo "img " $i "convertie a" $pourcentage "%"
done
#!/bin/sh
############################################
#auteur yarel.contrib@tiscali.fr
#affiche les lignes des fichiers contenant
#la chaine 'chaine'
############################################
echo -n " entrer la chaine à rechercher "
read chaine
#chaine vide ?
if [ -z $chaine ] ; then
echo " la chaine ne peut pas être vide"
exit 0
fi
for i in $@; do
#echo -n " je cherche : " $chaine " dans le fichier " $@
grep $chaine $@
done
#!/bin/sh
###################################################################
#auteur yarel.contrib@tiscali.fr
#affiche le commentaire et la fonction qui lui correspond
#ainsi que ceux des fichiers inclus & des variables de classe(php4)
# il faut que les commentaires soit au format
# /*******************
# * ligne de
# * commentaire
# *******************/
###################################################################
for i in $@;do
grep '\(*.\)\|\(function.\)\|\(var .\)\|\(include.\)' $i
done
#/bin/sh
################
#auteur: yarel.contrib@tiscali.fr
# recherche des fichiers doublons à partir du dossier passé en argument
# parcour les sous-repertoires
# pour chaque fichier (ne suis pas les liens)
# recherche des fichiers du même nom dans tous les autres répertoires connu par "locate"
# puis compare la somme MD5 des fichiers trouvés à celui du répertoire courant
# déterminant ainsi les "vrai" doublons des "homonymes"
# ecrit le résultat dans un fichier texte
#NOTE
# Il est utile de lancer la commande (sous root) "updatedb" avant de lancer
# le script la première fois ce qui permet de mettre à jour la bd utilisée par "locate"
#
# si vous exécutez le script plusieurs fois, le résultat est rajouté au fichier
################
#ici mettez le chemin jusqu'au fichier où le résultat sera écrit (il sera créer à la première exécution)
#par défault: "/home/vous/doublons.txt"
LOG=$HOME"/doublons.txt"
NBRREP=0
NBRFICHIER=0
NBRDOUBLON=0
NBRREPDOUB=0
#liste tous les fichiers réguliers du rep
function liste_fichier
{
declare -a tabr
for fichier in * ;
do
#filtre
if [ -f "$fichier" ] ; then
#sortie console
echo " fichier -" $fichier
#compteur de fichier
NBRFICHIER=$((NBRFICHIER + 1))
#recherche les doublons (ligne(=chemin complet) finissant par "/nomdufichier")
#remplace(temporairement=pour remplir le tableau) les espaces par des ";"
tabr=(`locate -r "/$fichier$" | tr ' ' ';'`)
#le nbr d'élément
nbr_item=${#tabr[@]}
#mise en forme si + d'une ligne renvoyée par "locate..."
if [ "$nbr_item" -gt 1 ] ; then
#somme md5 (cut=pour récuperer le premier champs avant l'espace)
summd5=`md5sum "$PWD/$fichier" | cut -d ' ' -f 1`
echo " RÉFÉRENCE : " "$summd5 : " "$PWD/$fichier" >> $LOG
fi
#boucle de lecture du tableau
for r in "${tabr[@]}"; do
#remplace les ";" par de espaces
trX=${r//";"/" "}
#si une seule ligne = à la référence (ie: le nom du fichier dans le rep courant)
if [ "$PWD/$fichier" = "$trX" ] || [ "$nbr_item" = 1 ]; then
continue
else
#il y a des doublons ?
sumdoub=`md5sum "$trX" | cut -d ' ' -f 1`
#compare la somme MD5 à celle des autres fichier du même nom
if [ "$summd5" = "$sumdoub" ] ; then
#c'est un vrai doublon
echo " Doublon : " "$sumdoub : " "$trX" >> $LOG
#le nbr de doublon dans le rep
NBRREPDOUB=$((NBRREPDOUB + 1))
#le nbr total de doublon dans tous les reps
NBRDOUBLON=$((NBRDOUBLON + 1))
else
#même nom mais pas même somme MD5
echo " Homonyme : " "$sumdoub : " "$trX" >> $LOG
fi
fi
done
fi
done
#pluriel
if [ $NBRREPDOUB -gt 1 ] ; then
pluriel="doublons"
else
pluriel="doublon"
fi
echo "------> il y a : " $NBRREPDOUB " $pluriel" >> $LOG
}
#explore les repertoires récursivement
function explore_rep
{
local f
#nombre total de repertoire
NBRREP=$((NBRREP + 1))
#sortie console
echo "$1"
#pour faire "bo" ;-)
echo "" >> $LOG
#mise en forme du fichier de sortie
if [ $NBRREP = 1 ] || [ $NBRREPDOUB -gt 0 ]; then
echo "REPERTOIRE : " $1 >> $LOG
elif [ $NBRREP -gt 1 ] || [ $NBRREPDOUB -gt 0 ]; then
echo "REPERTOIRE : " $PWD"/"$1 >> $LOG
fi
#si pas de rep stop
if ! cd "$1" ; then return ; fi
#remise à zero du compteur interne de doublon
NBRREPDOUB=0
#parcour le contenu de répertoire
liste_fichier $1
#lister les sous-rep
for f in * ; do
#sauter les liens symboliques
if [ -L "$f" ] ; then
continue
fi
#sous rep
if [ -d "$f" ] ; then
#on recommence avec le sous-rep
explore_rep "$f"
fi
done
#remonter
cd ..
}
#main
#format le fichier de sortie
echo "####### - Le : " $(date +%c) " - ################" >> $LOG
echo "# RACINE : " $1 >> $LOG
echo "#############################################" >> $LOG
explore_rep "$1"
#sortie console
echo "Fin de la recherche "
echo $NBRREP " REPERTOIRE EXPLORÉS"
echo $NBRFICHIER " FICHIERS RECHERCHÉS"
echo $NBRDOUBLON " DOUBLONS TROUVÉS"
#stats fichier
echo "########### - STATS - ################" >> $LOG
echo $NBRREP " REPERTOIRES EXPLORÉS" >> $LOG
echo $NBRFICHIER " FICHIERS RECHERCHÉS" >> $LOG
echo $NBRDOUBLON " DOUBLONS TROUVÉS" >> $LOG
echo "###########################################################" >> $LOG
Télécharger l'archive : yarel-scripts