Supprimer un caractére dans plusieurs nom de fichiers et dossier

Fermé
moi13 Messages postés 1 Date d'inscription mardi 24 décembre 2013 Statut Membre Dernière intervention 24 décembre 2013 - 24 déc. 2013 à 00:17
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 - 24 déc. 2013 à 09:16
Bonjour,

je voudrais enlever un caractère dans le nom de fichier et le même nom de dossier (page web télécharger avec un | dans le nom) , j'ai donc essayé de lister le nom des pages contenant le caractère "|" et essayé de les renommés avec le même nom mais sans "|" , mais je n'y arrive pas, si quelqu'un pourrait m'aidai svp.

voici ma démarche mais je bloque pour renommer (enfin je suppose que je m'y prend mal)

find . -name '*|*' -print

affiche :
./TP | le carrousel.html
./TP | le carrousel_fichiers

donc : find . -name '*|*' -print | sed -e "s/| /_/g" affiche le nom sans le "|"

je me suis dis d'imbriqué les commandes find, mv et sed

find . -name '*|*' -exec mv {}; find . -name '*|*' | sed -e "s/| /_/g"

mais cela ne renomme rien pourquoi? ou est l'erreur? si quelqu'un aurait la générosité de m'aidé je pense que cela servirait à d'autres aussi.

Merci d'ance





1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
24 déc. 2013 à 09:16
hello
avec la commande rename
shopt -s globstar
et
**
traite les sous répertoires, comme find
$ shopt -s globstar
$ rename -n 's/\|//g' **/*\|*
enlever le -n pour effectuer le rename
3