Commande traitement par lot

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. pour les espaces dans les noms, essayer
    find -name "*.mkv" -ls -exec bash -c "mkvalidator --no-warn \"{}\" | tr -d \".\"  "   \; > rapport.txt 2>&1
    0
    1. 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
      1. j'ai oublié un espace
        .........." \; > rapport.txt 2>&1
        0
        1. 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
          1. 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
            1. 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
              1. 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
                1. 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
                  1. 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