Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink)
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 smile
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