Aller au contenu

Featured Replies

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)

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)
  • Auteur

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

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)
  • Auteur

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)

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)
  • Auteur

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…

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.