Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 wink
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 ?? smile

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 tongue) mais si y'a d'autres combinaisons de lettres, ca fait que des cas particuliers, donc renommage à  la main big_smile


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

Shacamus a écrit :

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

iuchiban a écrit :

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 tongue) mais si y'a d'autres combinaisons de lettres, ca fait que des cas particuliers, donc renommage à  la main big_smile

ca ne m avance pas beaucoup smile

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

ZondeR a écrit :
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

ZondeR a écrit :
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

Shacamus a écrit :

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 tongue.

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

ZondeR a écrit :

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