Aller au contenu

Messages recommandés

Posté(e)

Je cherche à faire un script qui mofidie les header de mes fichiers mkv, pour indiquer que les ST sont en francais

La commande à lancer est la suivante :

mkvpropedit "fichier" --edit track:"numéro" --set language=fre

Le problème :

Lorsque je script çà, les parties "--edit track:"numéro"" et "--set language=fre" se retrouvent inversée dans la commande finale

J'ai tenté de les variabilisé, puis de coller les variables ($VAR1$VAR2) mais, là encore l'ordre des commandes sont inversées

Donc y'a un truc qui m'échappe et ma rendu totalement fou pendant plus de 2h hier

Si quelqu'un a une idée ...

Posté(e) (modifié)

Lorsque je script çà, les parties "--edit track:"numéro"" et "--set language=fre" se retrouvent inversée dans la commande finale

A quoi tu constates ça en pratique?

Modifié par CoolRaoul
Posté(e)

Via un echo, et via lancement de la commande, qui me dit qu'il manque un bout après "--edit track:3"

Essaie de mettre un "set -x" en début de script pour avoir la trace exacte de la commande

Posté(e)

Est-ce qu'un genre de truc comme ça ne fonctionnerait pas ?

VAR1=monfichier

VAR2=3

mkvpropedit ${VAR1} --edit track:${VAR2} --set language=fre

ou alors si cela ne fonctionne pas tente:

mkvpropedit ${VAR1} --edit track:`expr ${VAR2}` --set language=fre

Posté(e)

Les 2 fonctionnent, le problème n'est pas au niveau variable, mais que les paramètres se retrouvent inversés dans la commande finale :

Ca sort (de tête) "mkvpropedit "fichier" --set language=fre -- edit track:3"

Posté(e)

effectivement, la ça fait un peu désordre !

il faudrait la totalité du script car je suppose que c'est dans une boucle ou un truc comme ça ... et peut-être qu'il te manque une parenthèse, une quote etc...

Effectivement un petit set -vx va bien t'aider

Posté(e)

Même pas de boucle encore, je suis en tout début de création du script (juste un PoC quoi)

Je commence par faire la ligne de base, puis j'améliore petit à petit (boucle, condition...)

Posté(e)

Bon, j'ai trouvé ... éclair de génie lorsque j'ai lancé mon putty ...

J'avais totalement zappé les ^M vu que je venais de créer le script sous windows, et l'éditais depuis win aussi ...

J'ai presque honte :(

Posté(e)

Après quelques applications de mon PoC, je me rend compte que je sélectionnais pas tout les éléments nécessaires

Du coup, je pêche à mort sur une broutille :

Je fais un

mkvinfo "fichier" | grep -E "Track number|Track type|Language" |cut -f 2 -d":"

Il me sort ceci

 1
 video
 und
 2
 audio
 und
 3
 subtitles
 und
Jusqu'ici, tout va bien, c'est ce dont j'ai besoin
Maintenant, je dois "extraire" de cette liste le chiffre précédent le "subtitles", vérifier que la langue est bien "und" pour cette piste, et enfin, extraire le numéro des 2 autres pistes
L'idéal, serait d'arriver à faire des "blocs" sous la forme
 1:video:und
 2:audio:und
 3:subtitles:und
Mais j'ai passé quelques heures sur le truc, et j'arrive pas à m'en sortir avec sed et grep
Si une idée vous viens ...
Posté(e) (modifié)

Je viens de découvrir xargs, qui a solutionné tout çà !

mkvinfo "fichier" |grep -E "Track number|Track type|Language" |cut -f 2 -d":"  |xargs -n 3|sed  -e 's/ /:/g'

Donne bien

1:video:und
2:audio:und
3:subtitles:und
Modifié par bud77
Posté(e)

Je viens de découvrir xargs, qui a solutionné tout çà !

Elégant détournement de l'usage de la commande xargs (qu'on utilise d'habitude plutôt avec des listes de noms de fichiers en entrée).

Sinon (et a titre d'exercice) je pense qu'il doit être possible de tout faire d'un coup avec sed (pour ceux qui maîtrisent bien [ce n'est pas mon cas] les manipulation sur le "pattern space" et le "hold space")

Posté(e)

Oui, surement, mais pareil, je ne maitrise que les "basiques" de sed

En plus, si tu verrais la commande final (pcq je rajoute encore un grep et un sed juste pour récupérer 1 chiffre au final) elle fait plus de 100 caractères :huh:

Posté(e) (modifié)

Bonjour,

Ton bonheur devrait être ici :

http://www.commentcamarche.net/faq/9536-sed-introduction-a-sed-part-i

Je m'en sers quelquefois mais je préfère la commande "tr" avec laquelle ce serait facile. Cette commande n'est pas implémentée sur les synos, mais je me la suis compilée une fois pour toutes. Elle est dans les téléchargements.

Cordialement.

Michel.

Modifié par catimimi
Posté(e)

Oué je connais aussi TR, et elle est dispo via ipkg, mais je voulais utiliser le plus de programmes "natifs" par défaut

Je jetterai un oeil dès au lien que j'aurais la tête un peu plus reposée, merci !

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.