Commande traitement par lot

CmdLine -  
dubcek Messages postés 18789 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!
A voir également:

9 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
j'ai oublié un espace
.........." \; > rapport.txt 2>&1
0
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
pour les espaces dans les noms, essayer
find -name "*.mkv" -ls -exec bash -c "mkvalidator --no-warn \"{}\" | tr -d \".\"  "   \; > rapport.txt 2>&1
0