Pages : 1
#1 Le 10/10/2010, à 15:36
- kevain.cw
La vie après PhotoRec
Bonjour à tous,
Je vous explique la situation.
J'ai aidé un collègue à distance pour récupérer l'ensemble des photos de ses gamins ainsi que le taff de sa femme suite à une mauvaise manip de sa part ... En gros un ptit formatage en bonne et due forme !
J'ai donc utilisé PhotoRec, lui ai récupéré 30000 photos que j'ai réussi à classer grâce à jhead et à vous sur le forum par Année puis par Mois en récupérant les infos EXIF des photos.
Le problème que j'essaye de résoudre actuellement est le suivant :
Il y a environ 500 fichiers .doc , autant de .odt, de xls, de ppt, bref, plein de trucs comme ça.
J'aimerai pouvoir récupérer les x premiers caractères du fichier pour le renommage.
Je n'ai que les notions basiques d'utilisation du shell, et donc avec un "find -name machin" je trouve aucun document avec machin = différents termes.
Existerai-t-il un petit script tout beau tout propre qui permettrai au moins de récupérer les .doc ou le must serait de tout récupérer ?
Si vous avez besoin de plus d'infos, n'hésitez pas, je suis tout ouïe !
Merci d'avance !
A bientôt !
Kevain
Hors ligne
#2 Le 11/10/2010, à 23:50
- AnsuzPeorth
Re : La vie après PhotoRec
Bjr,
Si tu veux renommer tous les fichiers avec leurs 6 premiers caractères:
cd /dossier/quivabien
rename 's/(.*\/)(......).*(\..*)/$1$2$3/' *
Je suis pas expert en regex perl, mais ca doit être bon (si nom moins de 6 caractères, ca marchera pas, fait des essais avant )
Sinon avec une boucle, mais doit avoir moyen de trouver un regex infaillible !
Dernière modification par AnsuzPeorth (Le 11/10/2010, à 23:52)
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#3 Le 12/10/2010, à 00:10
- kevain.cw
Re : La vie après PhotoRec
Bonsoir Ansuz,
Le problème n'est pas si simple. Je ne veux pas les 6 premiers caractères du nom du fichier, mais les 6 premiers caractères contenus dans le fichier.
Si mon document Word, intitulé actuellement : j347867754.doc a ses 9 premiers caractères qui sont : Tictactoe, j'aimerai pouvoir renommer mon document en Tictactoe.doc.
Tu vois le délire ?
A+
Hors ligne
#4 Le 12/10/2010, à 00:28
- AnsuzPeorth
Re : La vie après PhotoRec
le problème c'est qu'il faudrait un traitement par type de fichier. Il faut donc connaitre comment il sont fait ! Les 9 premiers caractère d'un fichier ne sont pas forcement de l'ascii, ca peut être des tag, des balises, ca peut être du binaire ....!
T'es pas sauver
Par exemple, un odt, tu l'ouvres avec le gestionnaire d'archive et tu trouves ton bonheur dans content.xml.
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
#5 Le 12/10/2010, à 00:47
- kevain.cw
Re : La vie après PhotoRec
Oui c'est ça le problème, encore les .txt, spa dur mais un .doc, avec toute la mise en page vers MS Office, et tout ce qui va avec, c'est un peu différent d'un document Open Office !
Hors ligne
#6 Le 12/10/2010, à 04:54
- Compte anonymisé
Re : La vie après PhotoRec
Salut
Et si rien n'a été écrit sur le disque depuis la mauvaise manoeuvre, as-tu essayé testdisk pour tenter de revalider la partition ?
@+
#7 Le 12/10/2010, à 08:12
- AnsuzPeorth
Re : La vie après PhotoRec
J'ai trouvé un outils intéressant, unoconv, il peut transcrire tous les documents supportés par OoO.
J'ai fait un petit script, vite fait, mais j'ai pas tous les genre de fichiers pour tester.
Il faudrait un retour de commande unoconv pour les autres type,
Comme tjrs, ca peut être amélioré ou fait différemment.
#!/bin/bash
###############################################################################
## Ce script permet de copier/déplacer des fichiers avec comme nom les X
## premiers caractères de leur contenu. (voir case pour les formats supportés).
## dépendances: unoconv, pdftotext, OpenOffice
## Usage: script dossier_source dossier_sauvegarde
## AnsuzPeorth: 10/2010
################################################################################
## Commenter ou décommenter les lignes Exist ... et mv ... pour soit copier
## les fichiers (en les numérotants si ils existent déjà), ou en les déplacants
## en faisant un backup numéroté ~1~
## Les 2 premières ligne sont récupérés pour en extraire les X caractères
################################################################################
PATH_SOURCE="${1}"
PATH_SAVE="${2}"
#Nombre de caractères à récupérer
NB=10
cd "${PATH_SOURCE}"
UnoConv ()
{
ligne=$(unoconv -f $1 --stdout "${file}" | Decoupe)
mot=${ligne:0:$NB}
Exist "${PATH_SAVE}/${mot}-$n.${ext}" # ligne Exist ...
#mv --backup=numbered "${file}" "${PATH_SAVE}/${mot}.${ext}" # ligne mv ...
echo "$file ==> $mot ($n)"
}
Pdf()
{
ligne=$(pdftotext -htmlmeta -f 1 -l 1 "${file}" - | Decoupe)
mot=${ligne:0:$NB}
Exist "${PATH_SAVE}/${mot}-$n.${ext}" # ligne Exist ...
#mv --backup=numbered "${file}" "${PATH_SAVE}/${mot}.${ext}" # ligne mv ...
echo "$file ==> $mot ($n)"
}
Texte()
{
#ligne=$(grep -v ^$ "${file}" | Decoupe)
ligne=$(Decoupe < "${file}")
mot=${ligne:0:$NB}
Exist "${PATH_SAVE}/${mot}-$n.${ext}" # ligne Exist ...
#mv --backup=numbered "${file}" "${PATH_SAVE}/${mot}.${ext}" # ligne mv ...
echo "$file ==> $mot ($n)"
}
Exist()
{
if [[ -e "$1" ]]; then
n=$((n+1))
Exist "${PATH_SAVE}/${mot}-$n.${ext}"
else
cp "${file}" "${PATH_SAVE}/${mot}-$n.${ext}"
fi
}
Decoupe()
{ # commande à améliorer, pas de fichier, pas le gout ;)
egrep -v "(<|^$|^,,+|^.$)" | sed -n '$!N;s/[^[:alnum:]]//g;p;q'
}
for file in *
do
ext=${file##*.}
n=0
case $ext in
ods|ODS|xls|XLS)
UnoConv csv;;
rtf|RTF|doc|DOC|odt|ODT)
UnoConv txt;;
pdf|PDF)
Pdf;;
txt|TXT)
Texte;;
esac
done
exit
Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script (Hors ligne)
Hors ligne
Pages : 1