Commande traitement par lot

CmdLine -  
dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour, j'ai un soucis avec des mkv transférés, certains sont corrompus. Le programme mkvalidator à l'air de reconnaître ceux posant problème à la lecture.

Comme j'ai pas mal de fichiers à vérifier et le temps mis par fichiers j'ai recherché le moyen de faire le traitement par lot. Un peu de bidouille m'a permis d'écrire la commande suivante:

find -name "*.mkv" -exec mkvalidator --no-warn {} \;

La commande fonctionne mais je ne sais pas quel fichier est bon / mauvais.

Pouvez-vous m'aider à la compléter SVP? (avec si possible un rapport d'erreur dans un fichier) Merci!

9 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    l'option -ls affiche le nom des fichiers et on redirige le tout
    find -name "*.mkv" -ls -exec mkvalidator --no-warn {} \; > rapport.txt 2>&1
    1
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    des points générés pour montrer la progression ?
    essayer
    find -name "*.mkv" -ls -exec mkvalidator --quiet --no-warn {} \; > rapport.txt 2>&1
    1
  3. CmdLine
     
    Bonjour, excellent ça fonctionne bien. MERCI !
    Reste à trouver un moyen de supprimer le caractère "." car le fichier est composé à 99% de ce caractère. (je chipote ^^)

    Encore merci
    0
  4. CmdLine
     
    Oui "....." de progression. Le mode --quiet ne renvoi rien quand le fichier est bon C'est un peu dommage mais je peux faire avec.

    Je cherchais la commande SED mais je n'ai pas vu d'exemple avec un fichier en cours d'écriture.

    Depuis le temps que je dois regarder de plus près les commande par terminal je voulais profiter d'un exemple concret. En tout cas merci d'avoir fait avancer le chimili ... le chimilibili .. le truc quoi....
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    essayer
    find -name "*.mkv" -ls -exec bash -c "mkvalidator --no-warn {} | tr -d \".\"  "\; > rapport.txt 2>&1
    si on fait
    find -name "*.mkv" -ls -exec mkvalidator --no-warn {} \; | tr -d "." > rapport.txt 2>&1
    ca va aussi supprimer les . dans les noms de fichiers
    0
  7. CmdLine
     
    la première commande me renvoit 'dans le fichier texte):
    find: Paramètre manquant pour « -exec »

    la deuxième: fichier texte vide et affichage dans le terminal de la commande (progression etc.)
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    j'ai oublié un espace
    .........." \; > rapport.txt 2>&1
    0
  9. CmdLine
     
    Dans le fichier texte on a les points de la progression et une erreur si le nom de fichier comporte un espace.

    Remarquez que c'est pas grave, on peu considérer qu'en l'absence d'erreur le fichier est bon...
    find -name "*.mkv" -ls -exec mkvalidator --quiet --no-warn {} \; > rapport.txt 2>&1

    renvoie le nom du fichier ouvert à chaque fois et affiche les erreurs en dessous s'il y en a.
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    pour les espaces dans les noms, essayer
    find -name "*.mkv" -ls -exec bash -c "mkvalidator --no-warn \"{}\" | tr -d \".\"  "   \; > rapport.txt 2>&1
    0