[Résolu]Script Shell simple mais comment le faire

Script Shell simple mais comment le faire [Résolu] - Shell/Batch - Programmation

Marsh Posté le 13-10-2013 à 16:02:24    

Bonjour,
Je cherche une chose qui me paraît extrêmement simple mais que je n'arrive pas à faire.
Je télécharge beaucoup de petites vidéos de Youtubeurs sur Internet qui m'ont plut pour m'en faire des dossiers complets. Mais voilà lorsque je les télécharge grâce à un site, le nom du fichier est toujours suivi de [youtube.fr].
Vu que j'ai beaucoup de fichier, je ne compte pas les renommer à la main bien évidemment ^^' et donc j'aimerais faire un script en shell pour supprimer ce bout de chaîne.
 
Donc j'aimerais garder en mémoire le titre (ex : Salut les Geeks : Episode 1) et supprimer le [youtube.fr] (qui est toujours à la fin juste avant l'extension)
ex :  
                     SLG N°1 - Titre [youtube.fr].mp4
  devient :       SLG N°2 - Titre.mp4
 
Merci d'avance :)

Message cité 1 fois
Message édité par P'tit Serpent le 14-10-2013 à 18:40:06

---------------
Poupi Poupi Poupipou
Reply

Marsh Posté le 13-10-2013 à 16:02:24   

Reply

Marsh Posté le 13-10-2013 à 16:48:38    

Voici un script pour Windows qui fait ça :

' Programme qui renomme les fichiers d'un répértoire
' een enlevant [youtube] à la fin du nom
Sub RenameFilesInFolder(folderspec)
   Dim fso, f, f1, fc, s
   Set fso = CreateObject("Scripting.FileSystemObject" )
   Set f = fso.GetFolder(folderspec)
   Set fc = f.Files
   For Each f1 in fc
      name0 = fso.GetBaseName(f1)
      If (Right(name0, 13) = " [youtube.fr]" ) Then
         lg = Len(fso.GetBaseName(f1))
         name1 = Left(name0, lg - 13)
         name2 = name1 & "." & fso.GetExtensionName(f1)
         ' Wscript.Echo f1.name & "-->" & name2
         fso.MoveFile f1.name, name2
      End If
   Next
End Sub
 
' Lance le renommage à partir du dossier "." qui est le dossier courant
' ou bien on peut indiquer un chemin à la place du point
RenameFilesInFolder("." )
 
Wscript.Echo "Traitement terminé"
Wscript.Quit(1)


Il faut copier ces lignes dans un nouveau fichier, qui sera nommé, par exemple, RenameYt.vbs. L'extension ".vbs" est importante.
Ensuite, il suffit de cliquer dessus pour que le renommage s'effectue pour tous les fichiers du dossier courant.


Message édité par billgatesanonym le 13-10-2013 à 16:49:54
Reply

Marsh Posté le 13-10-2013 à 18:00:49    

C'est en Visual Basic ?
Merci en tout cas de l'intérêt que tu portes à ma question ^^'.
Mais ton script ne fonctionne pas chez moi, voici l'erreur lorsque je clique :  
http://img34.imageshack.us/img34/4196/slvl.png


---------------
Poupi Poupi Poupipou
Reply

Marsh Posté le 13-10-2013 à 18:41:49    

P'tit Serpent a écrit :

Bonjour,
Je cherche une chose qui me paraît extrêmement simple mais que je n'arrive pas à faire.
Je télécharge beaucoup de petites vidéos de Youtubeurs sur Internet qui m'ont plut pour m'en faire des dossiers complets. Mais voilà lorsque je les télécharge grâce à un site, le nom du fichier est toujours suivi de [youtube.fr].
Vu que j'ai beaucoup de fichier, je ne compte pas les renommer à la main bien évidemment ^^' et donc j'aimerais faire un script en shell pour supprimer ce bout de chaîne.

 

Donc j'aimerais garder en mémoire le titre (ex : Salut les Geeks : Episode 1) et supprimer le [youtube.fr] (qui est toujours à la fin juste avant l'extension)
ex :
                     SLG N°1 - Titre [youtube.fr].mp4
  devient :       SLG N°2 - Titre.mp4

 

Merci d'avance :)        

 
Code :
  1. cd "/home/bidule"
  2. find . -type f -iname "*" -print0 | while IFS= read -r -d $'\0' line; do
  3. if [[ $line =~ (.*)(\[.*\])(\..*)$ ]] ; then
  4. echo $line;
  5. mv "$line" "${BASH_REMATCH[1]}${BASH_REMATCH[3]}"; fi
  6. done
 

NB: c'est du bash (interpreteur dans /bin/sh). Ca peut également tourner sous windows avec cygwin.


Message édité par philippe06 le 13-10-2013 à 18:46:06

---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
Reply

Marsh Posté le 13-10-2013 à 19:17:01    

Oui j'ai testé sous Windows, mais il y a une erreur ^^'.
 
script.sh: line 8: Erreur de syntaxe près du symbole inattendu « done »
script.sh: line 8: `    done'
 


---------------
Poupi Poupi Poupipou
Reply

Marsh Posté le 13-10-2013 à 21:01:42    

P'tit Serpent a écrit :

Oui j'ai testé sous Windows, mais il y a une erreur ^^'.
 
script.sh: line 8: Erreur de syntaxe près du symbole inattendu « done »
script.sh: line 8: `    done'
 


 
C'est du bash, ça fonctionne sous Linux ou sous windows ... AVEC CYGWIN ... comme dit plus haut.  


---------------
Aimer les femmes intelligentes est un plaisir de pédéraste. (Charles Baudelaire) - Vous vulgarisez :o (Jean-Kevin Dubois)
Reply

Marsh Posté le 13-10-2013 à 23:03:21    

P'tit Serpent a écrit :

C'est en Visual Basic ?
Merci en tout cas de l'intérêt que tu portes à ma question ^^'.
Mais ton script ne fonctionne pas chez moi, voici l'erreur lorsque je clique :  
http://img34.imageshack.us/img34/4196/slvl.png


 
Pourtant, j'ai testé mon script. Il marche très bien sous Windows 7.
 
Je pense que les lignes ont été mal copiées ou mal sauvegardées.
La première ligne commence par une apostrophe normale. C'est un commentaire.
Il ne faut pas avoir une apostrophe penchée.
Par ailleurs, il faut sauvegarder le fichier en Ascii, pas en Unicode, car l'Unicode rajoute les caractères BOM (Byte Order Mark) au début.


Message édité par billgatesanonym le 13-10-2013 à 23:03:36
Reply

Marsh Posté le 14-10-2013 à 18:39:33    

philippe06 a écrit :


 
C'est du bash, ça fonctionne sous Linux ou sous windows ... AVEC CYGWIN ... comme dit plus haut.  


 
C'est bien ce que j'ai fais, je sais bien que le bash c'est pour Linux ^^'.
Mais en fait sous CygWin ça marche pas, mais sous linux ça marche nickel merci :)


---------------
Poupi Poupi Poupipou
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed