#1 Le 22/11/2007, à 14:18
- Shacamus
Expressions régulieres et renommage de fichiers
Bonjour tout le monde!
J aurais un petit service à vous demander: je souhaite renommer une intégralité de fichiers avec une commande:
par exmple renommeer un fichier Death note.divx en DeathNote.avi ou Death_Note.avi
Je vois la méthode (je pense en fait utiliser les expresssions rég' mais je n'arrive pas à le faire effectivement...
Pourriez vous m aider?
De plus, comment peut on faire également pour renommer un fichier [TKM]Bidule en Bidule?
je pensais à un
for i in `ls [TM]`
do
mv ....
Sinon et ce sera ma derniere question
je souhaite créer un script qui m affiche ce que fait tel ou tel user
le voici
#!/bin/sh
w | grep '$1'
Seulement cela ne fonctionne que pour les shell et ce qui en est issu,pour tout afficher, il faut plutot passer par ps -u [user ]?
Merci d avance!!!
Hors ligne
#2 Le 22/11/2007, à 14:25
- Shacamus
Re : Expressions régulieres et renommage de fichiers
Finalement j'arrive à renommer dans un fichier enfin plus ou moins
sed 's/[ ]/_/g' log sed 's/[ ]/_/g' log
mais comment utiliser cela pour déplacer les fichiers ??
Hors ligne
#3 Le 22/11/2007, à 14:31
- iuchiban
Re : Expressions régulieres et renommage de fichiers
Je pense tu peux tenter le truc avec un script Ruby pour renommer tes fichiers et les déplacer.
Pour juste remplcer les espaces par des vides ou des _, ca va.
De plus, comment peut on faire également pour renommer un fichier [TKM]Bidule en Bidule?
Si tous tes fichiers commencent par [TKM], script Ruby (encore ) mais si y'a d'autres combinaisons de lettres, ca fait que des cas particuliers, donc renommage à la main
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#4 Le 22/11/2007, à 15:23
- ZondeR
Re : Expressions régulieres et renommage de fichiers
mais comment utiliser cela pour déplacer les fichiers ?
tu peux faire qqchose comme ca:
mv log `sed 's/[ ]/_/g' log`
Hors ligne
#5 Le 22/11/2007, à 20:19
- Shacamus
Re : Expressions régulieres et renommage de fichiers
Je pense tu peux tenter le truc avec un script Ruby pour renommer tes fichiers et les déplacer.
Pour juste remplcer les espaces par des vides ou des _, ca va.
De plus, comment peut on faire également pour renommer un fichier [TKM]Bidule en Bidule?
Si tous tes fichiers commencent par [TKM], script Ruby (encore ) mais si y'a d'autres combinaisons de lettres, ca fait que des cas particuliers, donc renommage à la main
ca ne m avance pas beaucoup
Ca serait possible d avoir un exemple de script si possible ??? Merci d avance!
Hors ligne
#6 Le 22/11/2007, à 22:31
- ZondeR
Re : Expressions régulieres et renommage de fichiers
i=[TKM]Bidule
mv $i ${i/\[TKM\]/}
chapitre 10.3.3.3 du Bash-Beginners-Guide.pdf
et sinon, il marche le truc de 14:23?
Hors ligne
#7 Le 25/11/2007, à 01:08
- Shacamus
Re : Expressions régulieres et renommage de fichiers
Shacamus a écrit :mais comment utiliser cela pour déplacer les fichiers ?
tu peux faire qqchose comme ca:
mv log `sed 's/[ ]/_/g' log`
Apparement non....
En fait log, c'est un fichier issu de
ls >log
Hors ligne
#8 Le 25/11/2007, à 01:12
- Shacamus
Re : Expressions régulieres et renommage de fichiers
i=[TKM]Bidule mv $i ${i/\[TKM\]/}
chapitre 10.3.3.3 du Bash-Beginners-Guide.pdf
et sinon, il marche le truc de 14:23?
Mon script:
for i in `ls \[TKM\]*`
do
mv $i ${i/\[TKM\]/}
done
Qui donne à l'execution :
mv.sh: 3: Syntax error: Bad substitution
....
Une autre questrion:
Serait il possible d avoir un petit script remplacant les espaces par un '_' ?
merci d avance!
Dernière modification par Shacamus (Le 25/11/2007, à 01:38)
Hors ligne
#9 Le 25/11/2007, à 17:40
- ZondeR
Re : Expressions régulieres et renommage de fichiers
En fait log, c'est un fichier issu de "ls >log"
C'est pas forcément une mauvaise idée de mettre le résultat de ls dans un fichier, mais c'est inutile cette fois-ci.
Ton script devrait donc être:
for i in *
do
mv $i `sed 's/[ ]/_/g' $i`
done
Dernière modification par ZondeR (Le 25/11/2007, à 17:40)
Hors ligne
#10 Le 25/11/2007, à 17:48
- ZondeR
Re : Expressions régulieres et renommage de fichiers
mv.sh: 3: Syntax error: Bad substitution
Je ne sais pas pourquoi tu as ce problème, chez moi ton script marche bien. T'as magouillé des trucs bizarres dans ton shell avant de lancer le script?
essaye:
i=[TKM]Bidule;echo ${i/\[TKM\]/}
et dis-moi ce que ça donne.
Hors ligne
#11 Le 25/11/2007, à 17:58
- ZondeR
Re : Expressions régulieres et renommage de fichiers
Une autre question:
Serait il possible d avoir un petit script remplaçant les espaces par un '_' ?
merci d avance!
je croyais que c'était déjà ce que faisait le script avec sed.
Grosso modo, pour faire du renommage de fichiers, je te déconseille d'utiliser "sed", il est très puissant, mais son utilisation est beaucoup trop complexe pour le genre de choses que tu veux faire. Utilise plutot la notation du fameux chapitre 10.3.3.3 ou bien la commande "tr" qui permet de changer lettre à lettre.
Sinon, je pense que tu es un grand garçon maintenant avec tout ce que tu as appris dans ce post, tu dois pouvoir te débrouiller tout seul pour faire des petits scripts. Comme il vaut mieux apprendre à égorger un bÅ“uf plutà´t que de filer du steak, je veux bien répondre à tes questions techniques, mais plus pisser du code à ta place .
EDIT: tu peux aussi utiliser GPRename que je viens de découvrir. Son utilisation est graphique!
Dernière modification par ZondeR (Le 25/11/2007, à 18:10)
Hors ligne
#12 Le 25/11/2007, à 18:56
- Shacamus
Re : Expressions régulieres et renommage de fichiers
EDIT: tu peux aussi utiliser GPRename que je viens de découvrir. Son utilisation est graphique!
Ouais mais j aimerais bien connaitre la syntaxe sous jacente!!
Hors ligne