Posté(e) le 29 mai 200619 a 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. Modifié le 29 mai 200619 a par mikemowgli
Posté(e) le 29 mai 200619 a for i in $(ls *.ogg) do mv $i $(echo $i | sed 's/<<pas\ de\ disque>>//') done Modifié le 29 mai 200619 a par lorinc
Posté(e) le 29 mai 200619 a Auteur 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
Posté(e) le 29 mai 200619 a 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 Modifié le 29 mai 200619 a par lorinc
Posté(e) le 29 mai 200619 a Utilise "rename" : rename 's/<<pas\ de\ disque>>//' *.ogg Et hop :) (accessoirement c'est super pratique pour renommer ses MP3)
Posté(e) le 29 mai 200619 a 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
Posté(e) le 29 mai 200619 a Oui oui je l'utilise souvent rename "regex" fichiers Tu peux même utiliser les groupements.
Posté(e) le 29 mai 200619 a 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 ...
Posté(e) le 29 mai 200619 a Au passage, on peut directement renomer le bon champs dans grip... Ça évite de rattraper le truc à postériori.
Posté(e) le 29 mai 200619 a Auteur 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
Posté(e) le 29 mai 200619 a pour le IFS, oui, c'est normal, il faudrait mettre l'équivalent de \n en échappement
Posté(e) le 29 mai 200619 a pour le IFS, oui, c'est normal, il faudrait mettre l'équivalent de \n en échappement IFS=$(echo -e "\n")
Posté(e) le 29 mai 200619 a ls *.ogg | while read $NOMF do NOUVNOM=sed qui va bien mv $NOMF $NOUVNOM done ... mais rename c'est plus beau :)
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.