Je voudrais exécuter un script bash qui nettoie récursivement chaque nom de fichier dans un répertoire. Par exemple, j'ai le nom du fichier.Nettoyage des noms de fichiers dans un répertoire
The.Sarah.Jane.Adventures.S04E07.The.Empty.Planet.Part1.WS.PDTV.XviD-BIA [sharethefiles.com] .avi The.Sarah.Jane .Adventures.S04E08.The.Empty.Planet.Part2.WS.PDTV.XviD-BIA [sharethefiles.com] .avi
Je veux convertir le fichier.
les aventures de Sarah Jane S04E07 la vide planète Part1.avi
The Sarah Jane Adventures S04E07 Le vide planète Part2.avi
Donc, j'ai ce script sed:
sed -e's/\[sharethefiles\.com\]//g; s/WS//g; s/PDTV//g; s/Xvid-BiA//g; s/XviD-BiA//g; s/\.\.//g; s/\./\ /g;'
mais il vient avec des problèmes. Le . (point) est supprimé avant le suffixe (avi) et je ne suis pas vraiment sûr de savoir comment le remplacer par des fichiers si dynamiques. Parfois, il n'y a peut-être qu'un seul espace avant le suffixe et parfois il n'y en a pas puisque le script supprime également les doubles périodes.
Des idées pour résoudre le problème?
Merci pour toute aide!
Merci, qui semble fonctionner assez bien aux fins que je veux. Avec les cas spéciaux, j'ai fini par enlever l'espace avant que l'affaire n'arrive et cela a très bien fonctionné. Correction facile, blah ... Merci encore! – Ratty
@Ratty: Vous pouvez éliminer le 'tr' en remplaçant votre avant-dernier motif par' s /\.\+//g' et en remplaçant le dernier avec le motif de Gingi. –