#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