renomage en masse de fichier avec des foutu charset :( - Divers - Linux et OS Alternatifs
Marsh Posté le 24-06-2003 à 14:42:59
Si tu connais un peu le perl, ca doit pas être très long à faire. Sinon va falloir chercher...
CHaiCA
Marsh Posté le 24-06-2003 à 16:07:49
ReplyMarsh Posté le 24-06-2003 à 17:34:38
ben passke pour explorer une arborescence avec des critères précis, on a quand même pas fait mieux que find et que pour renomer un fichier en utilisant la puissance des regexp de perl, ben faut utiliser rename !
bon maintenant, tous le monde est libre, hein !
Marsh Posté le 24-06-2003 à 18:18:25
vi, mais bon, qd on peut éviter l'usine à gaz.....
genre renommer des fichiers de minuscules en majuscules
Code :
|
apres, ça doit s'adapter.....
enfin, ct ma contrib à ce post :-P
Marsh Posté le 24-06-2003 à 18:36:48
splurf a écrit : vi, mais bon, qd on peut éviter l'usine à gaz.....
|
et si ton arborescence est plus profonde ?
et si tu veux juste renommer les fichiers dont le nom contient "wahoga" à partir de la 4ème lettre ? et si tu veux tronquer les noms de fichier qui contiennent un numéro ?
et ben là, tu utilise find et rename !
Marsh Posté le 24-06-2003 à 23:59:24
merci bien, mais ca me dis pas vraiment comment utiliser que se soit find ou tr car il faut a un moment ou a un autre devoir taper ces fichus caracteres dans les arguments
Marsh Posté le 25-06-2003 à 01:14:38
un début de réponse pour des fichiers dans un seul et meme répertoire
Code :
|
ext étant le type de document jpg, gif, doc, rtf, xls....
Attention => TOUS les fichiers auront leur nom modifié
Marsh Posté le 25-06-2003 à 01:46:05
solution un peu plus propre
Code :
|
Marsh Posté le 25-06-2003 à 16:15:13
minusplus a écrit : wé enfin, tu réinvente l'eau chaude là, tu le sais ? |
je me passerais volontiers de tes sarcasmes.
monsieur le gourou, toi qui es si malin, propose une solution, ça sera un peu plus CONSTRUCTIF
bonne soirée
Marsh Posté le 25-06-2003 à 17:23:29
splurf a écrit : un début de réponse pour des fichiers dans un seul et meme répertoire
|
heu c'est koi ca ? du perl ? precises paske la ...
Marsh Posté le 25-06-2003 à 17:31:26
ce ne sont pas des sarcasmes, c'est juste que je pense que c'est plus efficace de faire :
find -type f | rename '($a = $_) =~ s/[^a-zA-Z0-9.-_]//g; $b=1; my $c=$a; while(stat $c) { $c=$a.$b++ } ; $_ = $c; ' |
Marsh Posté le 25-06-2003 à 17:34:09
minusplus a écrit : ce ne sont pas des sarcasmes, c'est juste que je pense que c'est plus efficace de faire :
|
YES
ca c'est du bon !
Marsh Posté le 25-06-2003 à 17:36:50
minusplus a écrit : ce ne sont pas des sarcasmes, c'est juste que je pense que c'est plus efficace de faire :
|
tu pouvais pas le dire plus tot...............;
Marsh Posté le 28-06-2003 à 12:33:23
bon dans un premier temp j'aimerais bien lister tout les fichiers contenant ces caracteres non imprimable.
j'ai essayé un
find -type f | egrep '[^a-zA-Z0-9.-_]' |
Mais ca m'affiche tout les fichiers. Comment qu'on fait ?
Je suis nul en expressions regulieres et je pige rien au truc de minusplus
Marsh Posté le 28-06-2003 à 13:05:08
c'est bon j'ai trouvé, c'est iconv que je cherchait !
Juste un pb, voila ce que je fais :
for i in *.doc;do file=`echo $i | iconv -f 850 -t ISO8859-1`; mv $i $file; done; |
mais j'ai mv qui me retoutourne une erreur:
mv: when moving multiple files, last argument must be a directory |
Marsh Posté le 29-06-2003 à 16:22:09
Code :
|
Marsh Posté le 24-06-2003 à 13:28:37
voila, j'ai un partage samba qui dans un premier temps ne faisait pas la conversion des caractères spéciaux, du coup sur le serveur linux on se retrouvait avec plein de "fichier sp?ciaux" c'est assez chiant, j'ai alors rajouté un client code page = 850 et character set = ISO8859-1, ca marche evidemment tres bien pour les nouveaux fichiers créés, mais les anciens sont toujours au mauvais format. Pire, comme samba fait la conversion dans l'autre sans (alors que ces fichiers sont deja en ISO8859-1 puisque créés depuis windows avec samba sans conversion) ils sont carements invisibles depuis windows.
Alors j'ai déja commencé a renomer les fichiers les plus important, il y en a un bon paquet ! En plus c'est chiant car un ne sais pas taper directement le nom du fichier avec ces foutus caractères, je suis obligé d'utiliser l'auto completion, et si par malheur ya plusieurs fichiers qui commencent pareil, je suis foutu
Donc ma question : qqun connait-il un moyen de renomer tout ces fichiers avec des caracteres spéciaux "windowsiens" sur un fs linux (ext3 en l'occurence)
Je me disais dans une espoir fous qu'il existerait un petit programme ou script qui scanne tout les rep et detectes les fichiers avec des caractères spéciaux et les convertisses...