Noms de fichiers : Caractères inhabituels

Résolu/Fermé
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 26 juin 2007 à 16:18
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 - 27 juin 2007 à 11:58
Bonjour,

auriez-vous une idée pour pouvoir déplacer des fichiers ayant des noms de caractère étranges :

^[[00mCRA_CMO_20060719_000000022.txt^[[00m
^[[00mCRA_CMO_20060720_000000023.txt^[[00m
^[[00mCRA_CMO_20060720_000000024.txt^[[00m

Ce sont des caractères invisibles qui se sont déposés je ne sais comment !
Du coup, impossible de faire quoique ce soit avec :

for i in $(ls /DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/);do fic=$(echo "/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$i") && ls "$fic";done

Ca me donne:
ls: /DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/CRA_CMO_20061121_000000333.txt: Aucun fichier ou répertoire de ce type
ls: /DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/CRA_CMO_20061121_000000334.txt: Aucun fichier ou répertoire de ce type

Une idée ? :-|

Merci !
A voir également:

13 réponses

jee pee Messages postés 40512 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 1 décembre 2024 9 440
26 juin 2007 à 16:27
bonjour,

en mode graphique sur une console x-windows, ne peux tu pas les renommer ?

cdt
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 juin 2007 à 16:41
Salut,

fait une sauvegarde avec tar de quelques fichiers et envoie par mail (regarde mon profil)
je vais voir ça chez moi
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
26 juin 2007 à 17:06
C parti !

Merci ;-)
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
26 juin 2007 à 16:42
Et avec
mv *CRA_CMO_200*.txt* destination
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
26 juin 2007 à 16:57
Merci,

mais le souci, c'est que je voulais faire le traitement suivant :

for i in $(ls /home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/);do dte=$(echo $i|cut -d"_" -f3) && if [ "${#dte}" = "8" ];then year=`expr substr $dte 1 4` && month=`expr substr $dte 5 2` && day=`expr substr $dte 7 2` && mkdir -p /home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$year/$month/$day && mv -v "/home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$i" /home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$year/$month/$day/;fi;done

Pour déplacer chaque fichier dans des sous-répertoires YEAR/MONTH/DAY/ (à cause de la saturation du système)

Et j'obtiens sur chaque fichier un truc du genre :
mv: ne peut évaluer `/home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/\033[00mCRA_CMO_20060724_000000029.txt\033[00m': Aucun fichier ou répertoire de ce type
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 17:04
Salut et un truc du genre :
cd  /DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/
for i in *;do mv ${i} ${i//^[[00m/};done
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
26 juin 2007 à 17:21
Raté !

mv: `CRA_POST_20070506_000001513.txt' et `CRA_POST_20070506_000001513.txt' identifient le même fichier.

:-((

J'ai bidouillé pour le moment: récupéré la liste via "ls > monfichier.txt", modifié le fichier de texte en enlevant les caractères bizarres, puis lancé ma commande ci-dessus :

for i in $(cat mesfichiers.txt);do dte=$(echo $i|cut -d"_" -f3) && if [ "${#dte}" = "8" ];then year=`expr substr $dte 1 4` && month=`expr substr $dte 5 2` && day=`expr substr $dte 7 2` && mkdir -p /home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$year/$month/$day && mv -v "/home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$i" /home/billingbzh/DATA/CRA/CRA_FOR_SISTEER/CMO_PRE/$year/$month/$day/;fi;done

Ca fonctionne, mais les noms des fichiers restent évidemment inexploitables !
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 17:33
[jp@MDK tmpfs]$ touch "^[[00mCRA_CMO_20060719_000000022.txt^[[00m"

[jp@MDK tmpfs]$ ls -1

^[[00mCRA_CMO_20060719_000000022.txt^[[00m
captures/
plop
plop~

[jp@MDK tmpfs]$ for i in *;do mv ${i} ${i//^[[00m/} 2>/dev/null ;done

[jp@MDK tmpfs]$ ls -1

captures/
CRA_CMO_20060719_000000022.txt
plop
plop~

[jp@MDK tmpfs]$
Chez moi ça marche mais enfin comme l'as dit "lami20j" il faut les originaux pour faire des tests approfondis ...

0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
26 juin 2007 à 17:41
Oui ,parce que dans ton exemple:
^[[00mCRA_CMO_20060719_000000022.txt^[[00m
Tous les caractères existent !

En fait, ^[[00m ce sont des caractères invisibles, que je n'aperçois que lorsque je fais un vi sur mesfichiers.txt, résultant de "ls > mesfichiers.txt"

sous vi, dans le nom du fichier, la séquence "^[" apparait en BLEU (comme les "^M" des fichiers DOS)
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897 > tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012
26 juin 2007 à 18:24
En fait, ^[[00m ce sont des caractères invisibles, que je n'aperçois que lorsque je fais un vi sur mesfichiers.txt, résultant de "ls > mesfichiers.txt"
Ben j'ai rien de tout ça môa ;-((
Tes fichiers ils me paraissent cleans, pas de caractères bizarres ;-\
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
26 juin 2007 à 17:44
Tu peux m'envoyer un bout de ton fichier ? ( voir profil)
0
aralicia Messages postés 20 Date d'inscription samedi 3 décembre 2005 Statut Membre Dernière intervention 26 juin 2007 1
26 juin 2007 à 18:19
Bonjour.

Les "caracteres bizarres" sont des termcaps. Ils sont utiliés pour ajouter des effet de texte dans un emulateur de terminal (bold, couleurs...)
l'ideal pour les supprimer serait de pour les inhiber dans les commandes. n'étant pas doué en shellscript, je ne peut vous aider.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 juin 2007 à 18:26
Salut,

voici une simulation
avec le 1er rename je renomme les fichiers avec le caractère bizzare
lami20j@debian:~/c/tlep$ ls -1
lami20j@debian:~/c/tlep$ touch CRA_CMO_20060719_000000022.txt
lami20j@debian:~/c/tlep$ touch CRA_CMO_20060720_000000023.txt
lami20j@debian:~/c/tlep$ touch CRA_CMO_20060720_000000024.txt
lami20j@debian:~/c/tlep$ rename 's/(.*)/\e[0m$1\e[m/' *
lami20j@debian:~/c/tlep$ ls -1
?[0mCRA_CMO_20060719_000000022.txt?[m
?[0mCRA_CMO_20060720_000000023.txt?[m
?[0mCRA_CMO_20060720_000000024.txt?[m
lami20j@debian:~/c/tlep$ ls -1 | cat -t
^[[0mCRA_CMO_20060719_000000022.txt^[[m
^[[0mCRA_CMO_20060720_000000023.txt^[[m
^[[0mCRA_CMO_20060720_000000024.txt^[[m
lami20j@debian:~/c/tlep$ rename 's/.*(C.*\.txt).*/$1/' *
lami20j@debian:~/c/tlep$ ls -1
CMO_20060719_000000022.txt
CMO_20060720_000000023.txt
CMO_20060720_000000024.txt
lami20j@debian:~/c/tlep$ ls -1 | cat -t
CMO_20060719_000000022.txt
CMO_20060720_000000023.txt
CMO_20060720_000000024.txt
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
26 juin 2007 à 18:44
Non, ca ne fonctionne pas: le fichier reste avec des caractères bizarres !

Apparemment, c'est le système de fichiers qui a un pb:

J'ai comparé sur une autre machine:

touch toto && ls -1 | cat -t
toto

En revanche, sur celle-ci :
touch toto && ls -1 | cat -t
^[[00m^[[00mtoto^[[00m


!!!!
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
26 juin 2007 à 18:51
la commande locale te donne quoi?
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
27 juin 2007 à 09:24
Sur la machine qui semble débloquer:

LANG=fr_FR@euro
LC_CTYPE="fr_FR@euro"
LC_NUMERIC="fr_FR@euro"
LC_TIME="fr_FR@euro"
LC_COLLATE="fr_FR@euro"
LC_MONETARY="fr_FR@euro"
LC_MESSAGES="fr_FR@euro"
LC_PAPER="fr_FR@euro"
LC_NAME="fr_FR@euro"
LC_ADDRESS="fr_FR@euro"
LC_TELEPHONE="fr_FR@euro"
LC_MEASUREMENT="fr_FR@euro"
LC_IDENTIFICATION="fr_FR@euro"
LC_ALL=

Sur la machine qui n'a pas le souci des noms de fichiers:

LANG=fr_FR
LANGUAGE=fr_FR
LC_CTYPE="fr_FR"
LC_NUMERIC="fr_FR"
LC_TIME="fr_FR"
LC_COLLATE="fr_FR"
LC_MONETARY="fr_FR"
LC_MESSAGES="fr_FR"
LC_PAPER="fr_FR"
LC_NAME="fr_FR"
LC_ADDRESS="fr_FR"
LC_TELEPHONE="fr_FR"
LC_MEASUREMENT="fr_FR"
LC_IDENTIFICATION="fr_FR"
LC_ALL=
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
27 juin 2007 à 09:42
J'ai une hyppothèse !

J'avais il y a longtemps changé le prompt de mon user pour le passer en rouge:

dans ~/.bashrc, j'avais spécifié :
PS1='\[\033[0;31;40m\u@\h:\w\$ \]'

J'ai remis la variable normale, et depuis les noms de fichiers semblent être lisibles !
Il semblerait que çà ne soit pas en fait un pb de nom donnés aux fichiers, mais de noms lus par le user.

Je ne comprends pas trop pourquoi, mais le problème semble stabilisé !

Thierry
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
27 juin 2007 à 10:11
PS1='\[\033[0;31;40m\u@\h:\w\[\e[0;m\]\$ '
;-))
0
tlep Messages postés 596 Date d'inscription jeudi 21 février 2002 Statut Membre Dernière intervention 25 octobre 2012 118
27 juin 2007 à 11:58
J'avais recopié çà depuis le net : je ne comprends rien à la syntaxe des prompts !!
0