Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/02/2007, à 16:33

boblefrag

(RESOLU) recherche une commande avec sortie incrémentale

Bonjour à tous !

D'habitude j'arrive à m'en sortir tout seul mais là je sèche ... Nul doute que vous saurez m'aider! Voila mon problème,

J'enregistre un programme TV sur l'ordi 1 et j'ai fait un cron pour l'envoyer sur l'ordi 2 afin de le compresser avec mencoder de .m2t vers avi.

Je voudrais donc faire un cron sur l'ordi 2 pour faire la commpression durant la nuit. Je me suis donc attelé à la rédaction d'un script. ce qui donne:

mencoder *.ts -oac copy -ovc lavc -lavcopts vcodec=mpeg4:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 -o film.avi

mencoder *.ts -oac copy -ovc lavc -lavcopts vcodec=mpeg4:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 -o film.avi

seulement comme ça, mencoder m'écrase l'enregistrement précédent.

Donc, ma question est :

comment faire pour que le nom du fichier de sortie soit le même que le fichier d'entrée?

J'espère ne pas avoir été trop confus et je vous remercie de votre aide !

Dernière modification par boblefrag (Le 27/02/2007, à 14:59)

Hors ligne

#2 Le 26/02/2007, à 18:32

oce

Re : (RESOLU) recherche une commande avec sortie incrémentale

Si j'ai bien compris tu veux que tes fichiers .avi portent le meme nom que  les .ts
Si c'est ça tu peux t'inspirer de ce bout de code

list=`ls *.ts`
for a in $list;
do
echo 'mon ancien fichier' $a
echo 'mon nouveau fichier'  `echo $a | sed "/.ts/s//.avi/"`; 
done

Hors ligne

#3 Le 26/02/2007, à 19:07

boblefrag

Re : (RESOLU) recherche une commande avec sortie incrémentale

merci pour ta réponse, c'est exactement ce que je souhaite faire. Seulement, je suis une quiche en bash!

En fait, mon problème, c'est que je ne commprend pas ton bout de code. Pourrais tu me l'expliquer un peu histoire que je puisse effectivement le modifier pour qu'il réponde a mes besoins.

S'il y as des pages de man que j'ai loupées, je veux bien que vous me les donniez aussi histoire que je commprenne un peu ce que je fait !

D'avance merci

Hors ligne

#4 Le 26/02/2007, à 19:30

oce

Re : (RESOLU) recherche une commande avec sortie incrémentale

ok, je reprend le code ...

# Je définis la liste de tous les fichiers ayant l'extension .ts
list=`ls *.ts`

# je fais une boucle sur les éléments 'a' de cette liste
for a in $list;
do # début instruction de la boucle

# j'imprime les éléments de la listes $a
echo 'mon ancien fichier' $a

# j'imprime le résultat de la suite de commandes `echo $a | sed "/.ts/s//.avi/"`; 
# qui veut dire: imprime les éléments [ echo $a ]
#                       prend le résultat et donne le comme entrée de sed [  |  ]
#                       et change la chaine .ts en .avi [  sed "/.ts/s//.avi/" ]
echo 'mon nouveau fichier'  `echo $a | sed "/.ts/s//.avi/"`; 

done  # fin de la boucle

voilà bonne chance,

le tutorial que j'utilise dès que j'ai un trou:
http://www.ac-creteil.fr/reseaux/systemes/linux/shell-scripts/shell-programmation.html

Pour l'utilisation de sed tu peux faire un
$ man sed
mais c'est plutot indigeste

Dernière modification par oce (Le 26/02/2007, à 19:32)

Hors ligne

#5 Le 26/02/2007, à 19:42

boblefrag

Re : (RESOLU) recherche une commande avec sortie incrémentale

whaaaa!!!! Merci beaucoup! Bon ben là c royal ! a part te demander de me faire le café (avec deux sucres svp):D je vois  pas!!! reste plus qu'a coder !

Hors ligne