Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
617 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2206621
P'tit Serp​ent
Je ne mords pas :)
Posté le 13-10-2013 à 16:02:24  profilanswer
 

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
mood
Publicité
Posté le 13-10-2013 à 16:02:24  profilanswer
 

n°2206628
billgatesa​nonym
Posté le 13-10-2013 à 16:48:38  profilanswer
 

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
n°2206630
P'tit Serp​ent
Je ne mords pas :)
Posté le 13-10-2013 à 18:00:49  profilanswer
 

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
n°2206632
philippe06
Posté le 13-10-2013 à 18:41:49  profilanswer
 

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)
n°2206635
P'tit Serp​ent
Je ne mords pas :)
Posté le 13-10-2013 à 19:17:01  profilanswer
 

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
n°2206641
philippe06
Posté le 13-10-2013 à 21:01:42  profilanswer
 

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)
n°2206649
billgatesa​nonym
Posté le 13-10-2013 à 23:03:21  profilanswer
 

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
n°2206736
P'tit Serp​ent
Je ne mords pas :)
Posté le 14-10-2013 à 18:39:33  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 

Sujets relatifs
Problème simple de calcul[PHP] Script de remplissage de base de données
SCRIPT de création de Launchers personnalisésUn script de sauvegarde/restauration pour Windows
Script pour Shutdown -tBesoin d'aide pour la comprehension d'un script
Lancer un script Python Par la commande Batch "SCHTASKS"Executer un script python par la commande Batch SCHTASKS
Impossible d'executer script linux sous PHPScript Shell (simple?) sftp
Plus de sujets relatifs à : [Résolu]Script Shell simple mais comment le faire


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR