mikemowgli Posted May 29, 2006 Share Posted May 29, 2006 Hello hello. Je suis nul en shell scripting et j'ai parfois qq soucis avec Grip quand il nomme mes .ogg. Ici par exemple tous les fichiers du dossier ont le bon nom mais commencent par <<pas de disque>>. Comment faire pour supprimer ça pour chaque fichier en une seule commande shell? (je me doute que la solution doit être à plein d'endroit sur le net, mais je n'ai pas trouvé si facilement... je m'en remets donc à de vrais pros^^). merci beaucoup. Link to comment Share on other sites More sharing options...
lorinc Posted May 29, 2006 Share Posted May 29, 2006 for i in $(ls *.ogg) do mv $i $(echo $i | sed 's/<<pas\ de\ disque>>//') done Link to comment Share on other sites More sharing options...
mikemowgli Posted May 29, 2006 Author Share Posted May 29, 2006 for i in $(ls *.ogg) do mv $i $(echo $i | sed 's/<<pas\ de\ disque>>//') done Ca ne marche pas encore tout à fait car le echo envoie, sur le flux de sortie standard, chaque mot de chaque titre sur une ligne séparée. C'est à dire que le sed n'arrive pas à trouver la séquence "pas de disque" quand echo lui envoie 09 - pas de disquethe offspring - intermission.ogg 10 - pas de disquethe offspring - all i want.ogg une idée? merci Link to comment Share on other sites More sharing options...
lorinc Posted May 29, 2006 Share Posted May 29, 2006 ah, ben rajoute IFS="" alors allez, testé chez moi : #!/bin/bash IFS="" for i in $(ls *.ogg) do mv $i $(echo $i | sed 's/pas de disque //') done Link to comment Share on other sites More sharing options...
Angel Eyes Posted May 29, 2006 Share Posted May 29, 2006 et quoi ? et rename ? rename "pas de disque" "" *.ogg Link to comment Share on other sites More sharing options...
Sentinel Posted May 29, 2006 Share Posted May 29, 2006 Utilise "rename" : rename 's/<<pas\ de\ disque>>//' *.ogg Et hop :) (accessoirement c'est super pratique pour renommer ses MP3) Link to comment Share on other sites More sharing options...
Angel Eyes Posted May 29, 2006 Share Posted May 29, 2006 Utilise "rename" : rename 's/<<pas\ de\ disque>>//' *.ogg Et hop :) (accessoirement c'est super pratique pour renommer ses MP3) je connaissais pas cette syntaxe pour rename ... t'es sur de ton coup ? regarde au dessus Link to comment Share on other sites More sharing options...
Sentinel Posted May 29, 2006 Share Posted May 29, 2006 Oui oui je l'utilise souvent rename "regex" fichiers Tu peux même utiliser les groupements. Link to comment Share on other sites More sharing options...
lorinc Posted May 29, 2006 Share Posted May 29, 2006 ah ouais, mais bon, comme le dit la pub : "sed c'est bien" Link to comment Share on other sites More sharing options...
Angel Eyes Posted May 29, 2006 Share Posted May 29, 2006 Oui oui je l'utilise souvent rename "regex" fichiers Tu peux même utiliser les groupements. merci pour le renseignement, mais j'ai été plus rapide PS : j'ai essayé, a marche po ... Link to comment Share on other sites More sharing options...
theocrite Posted May 29, 2006 Share Posted May 29, 2006 Au passage, on peut directement renomer le bon champs dans grip... Ça évite de rattraper le truc à postériori. Link to comment Share on other sites More sharing options...
mikemowgli Posted May 29, 2006 Author Share Posted May 29, 2006 re... c'est encore moi ^^ bon alors lorinc, en fait, ton script avec IFS="" ça marchait............................. pour un seul fichier :/ mais pour pusieurs ça merdoyait... et comme je ne voulais pas paraître plus boulet que nature, j'ai cherché par moi-même et ai appris l'existence de rename. Après quelques essais ça a amrché nickel avec rename pas\ de\ disque '' *.ogg mais pas avec rename 's/pas\ de\ disque//' *.ogg Allez comprendre pourquoi... :) (d'ailleurs si quelqu'un sait, ça me téraisse beaucoup :) aurais-je une version pourrite de rename?) merci à tous et à plus tard pour de nouvelles aventures Au passage, on peut directement renomer le bon champs dans grip... Ça évite de rattraper le truc à postériori. ui j'ai bien config grip mais il merdouillait, pamafôte Link to comment Share on other sites More sharing options...
lorinc Posted May 29, 2006 Share Posted May 29, 2006 pour le IFS, oui, c'est normal, il faudrait mettre l'équivalent de \n en échappement Link to comment Share on other sites More sharing options...
tuXXX Posted May 29, 2006 Share Posted May 29, 2006 pour le IFS, oui, c'est normal, il faudrait mettre l'équivalent de \n en échappement IFS=$(echo -e "\n") Link to comment Share on other sites More sharing options...
theocrite Posted May 29, 2006 Share Posted May 29, 2006 Ou plus simple : IFS=" " Link to comment Share on other sites More sharing options...
Sandeman Posted May 29, 2006 Share Posted May 29, 2006 ls *.ogg | while read $NOMF do NOUVNOM=sed qui va bien mv $NOMF $NOUVNOM done ... mais rename c'est plus beau :) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.