SED : comment remplacer caractere non reconnu

Résolu/Fermé
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 - 31 mars 2007 à 10:01
 madjpm - 24 déc. 2009 à 14:38
Help
merci pour ce site très pratique, pouvez-vous m'aider ?

j'ai fait un script pour eliminer tous les caracteres non ascci d'un nom de fichier et je n'arrive pas à eliminer celui-ci '?' car je ne peux pas le nommer explicitement, il est alors remplacé par '/' que je ne veux pas non plus.

QUESTION : y a-t-il une option pour que "sed" transforme les caracteres non reconnus en un caractere que je lui designe ?

merci infiniment

Frantzou

32 réponses

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 567
31 mars 2007 à 15:05
affiche seulement
 ls -1Q

c'est 1 ("un")
0
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 1
31 mars 2007 à 15:13
Résultat
francis@francis-laptop:~/Desktop/test$ ls -1q
---------- 1 1 0 Feb 18 2005 0316248C:003495F4:4216248B les br?ves
---------- 1 1 0 Feb 21 2005 0A19EEA6:0035B6A1:4219EEA6 le funiculaire en r?
---------- 1 1 0 Feb 21 2005 0C19EEA6:000D91F2:4219EEA6 plus s?r
---------- 1 1 105 Sep 26 2003 08741EC6:001AA4B6:3F741EC6 04:05 ille-et-vilain
---------- 1 1 107 Sep 22 2003 156ED90F:00256FB0:3F6ED90F 5:44 une nouvelle vi
---------- 1 1 107 Sep 24 2003 02717D19:0001257C:3F717D18 17:00 cent millions
---------- 1 1 108 Sep 19 2003 086AEB2D:0004EECA:3F6AEB2D 00:52 affaire maalem
---------- 1 1 108 Sep 21 2003 0E6D7AC2:0005453A:3F6D7AC2 04:02 distribution d
---------- 1 1 108 Sep 21 2003 126D7AC2:00054539:3F6D7AC2 6:20 r?habilitation
---------- 1 1 108 Sep 23 2003 19703027:000276A2:3F703027 10:15 des locaux fla
---------- 1 1 109 Sep 21 2003 086D7AC2:0005453B:3F6D7AC2 06:28 journ?e de la
---------- 1 1 109 Sep 22 2003 106ED90F:00256FA6:3F6ED90F 01:00c'est tjrs l'?t
---------- 1 1 120 Mar 02 2005 3225D17D:000E3939:4225D17C 14:28 r?ouverture du
---------- 1 1 165 Feb 24 2005 0A1DEC1A:003607CD:421DEC19 d?couverte : ch?teau
---------- 1 1 35 Feb 16 2005 2E136478:00153EDC:4213A00B 5:30 pol?mique h?pit
---------- 1 1 35 Feb 24 2005 061DEC1A:0015FED8:421DEC19 6:02 apr?s versaill
0
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 1
31 mars 2007 à 15:18
bizarre
pour le mot : br\350ves
quand je mets ça,
sed -e s/[é,è,ê,ë,'\350']/e/g
le résultat est :
breeeeves
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 567
31 mars 2007 à 15:19
ls -1 | gzip list.gz 

tu peux m'envoyer le fichier list.gz par mail (regarde mon profil)
et pour ls
c'est le chiffre 1 ("un") pas la lettre l ("L en minuscules)
0

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

Posez votre question
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 1
31 mars 2007 à 15:29
a commande me renvoie
gzip: list.gz: No such file or directory

?
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 567
31 mars 2007 à 15:32
pas grave, c'est ma faute :-)

c'était
ls -1 | gzip > list.gz
ça te conviens comme ça
$ cat list
"---------- 1 1 0 Feb 18 2005 0316248C:003495F4:4216248B les br\350ves"
"---------- 1 1 0 Feb 21 2005 0A19EEA6:0035B6A1:4219EEA6 le funiculaire en r\351"
"---------- 1 1 0 Feb 21 2005 0C19EEA6:000D91F2:4219EEA6 plus s\373r"
"---------- 1 1 105 Sep 26 2003 08741EC6:001AA4B6:3F741EC6 04:05 ille-et-vilain"
"---------- 1 1 107 Sep 22 2003 156ED90F:00256FB0:3F6ED90F 5:44 une nouvelle vi"
"---------- 1 1 107 Sep 24 2003 02717D19:0001257C:3F717D18 17:00 cent millions"
"---------- 1 1 108 Sep 19 2003 086AEB2D:0004EECA:3F6AEB2D 00:52 affaire maalem"
"---------- 1 1 108 Sep 21 2003 0E6D7AC2:0005453A:3F6D7AC2 04:02 distribution d"
"---------- 1 1 108 Sep 21 2003 126D7AC2:00054539:3F6D7AC2 6:20 r\351habilitation"
"---------- 1 1 108 Sep 23 2003 19703027:000276A2:3F703027 10:15 des locaux fla"
"---------- 1 1 109 Sep 21 2003 086D7AC2:0005453B:3F6D7AC2 06:28 journ\351e de la"
"---------- 1 1 109 Sep 22 2003 106ED90F:00256FA6:3F6ED90F 01:00c'est tjrs l'\351t"
"---------- 1 1 120 Mar 02 2005 3225D17D:000E3939:4225D17C 14:28 r\351ouverture du"
"---------- 1 1 165 Feb 24 2005 0A1DEC1A:003607CD:421DEC19 d\351couverte : ch\342teau"
"---------- 1 1 35 Feb 16 2005 2E136478:00153EDC:4213A00B 5:30 pol\351mique h\364pit"
"---------- 1 1 35 Feb 24 2005 061DEC1A:0015FED8:421DEC19 6:02 apr\350s versaill"
$ cat list | sed -e 's/\\35[01]/e/g' -e 's/\\342/a/g' -e 's/\\373/u/g' -e 's/\\364/o/g'
"---------- 1 1 0 Feb 18 2005 0316248C:003495F4:4216248B les breves"
"---------- 1 1 0 Feb 21 2005 0A19EEA6:0035B6A1:4219EEA6 le funiculaire en re"
"---------- 1 1 0 Feb 21 2005 0C19EEA6:000D91F2:4219EEA6 plus sur"
"---------- 1 1 105 Sep 26 2003 08741EC6:001AA4B6:3F741EC6 04:05 ille-et-vilain"
"---------- 1 1 107 Sep 22 2003 156ED90F:00256FB0:3F6ED90F 5:44 une nouvelle vi"
"---------- 1 1 107 Sep 24 2003 02717D19:0001257C:3F717D18 17:00 cent millions"
"---------- 1 1 108 Sep 19 2003 086AEB2D:0004EECA:3F6AEB2D 00:52 affaire maalem"
"---------- 1 1 108 Sep 21 2003 0E6D7AC2:0005453A:3F6D7AC2 04:02 distribution d"
"---------- 1 1 108 Sep 21 2003 126D7AC2:00054539:3F6D7AC2 6:20 rehabilitation"
"---------- 1 1 108 Sep 23 2003 19703027:000276A2:3F703027 10:15 des locaux fla"
"---------- 1 1 109 Sep 21 2003 086D7AC2:0005453B:3F6D7AC2 06:28 journee de la"
"---------- 1 1 109 Sep 22 2003 106ED90F:00256FA6:3F6ED90F 01:00c'est tjrs l'et"
"---------- 1 1 120 Mar 02 2005 3225D17D:000E3939:4225D17C 14:28 reouverture du"
"---------- 1 1 165 Feb 24 2005 0A1DEC1A:003607CD:421DEC19 decouverte : chateau"
"---------- 1 1 35 Feb 16 2005 2E136478:00153EDC:4213A00B 5:30 polemique hopit"
"---------- 1 1 35 Feb 24 2005 061DEC1A:0015FED8:421DEC19 6:02 apres versaill"
0
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 1
31 mars 2007 à 15:40
en quel shell produis-tu ce resultat ? (je suis en sh)
frantzou
0
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 1
31 mars 2007 à 15:48
LAMI20J, tu es le meilleur, ça fonctionne à merveille ; Bravo et surtout merci pour le temps que tu y a passé depuis ce matin, je te suis redevable d'un service. Que puis-je faire pour toi ?


Merci à toi l'ami te à un de ces jours du CCM
Frantzou
0
frantzou69 Messages postés 21 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 septembre 2007 1
31 mars 2007 à 16:04
Resumons-nous

Au dépard j'ai récupéré sur linux par FTP un fichier créé sous SCO Unix par un Client win.
lors de carcateres non ascii dans le nom de fichier, c'est le caractere � qui est inscrit à la place.(les voyelles accentuées sont toutes représentes par ce caractere spécial)
en allant sur le site http://people.w3.org/rishida/scripts/uniview.fr/conversion.html
j'ai traduit le caractere en code :
hexa : FFFD
je veux utiliser la commande SED pour modifier ce caractere
et si je veux décoder ce caractere par sed -e s/\xFFFD/e/g on obtient un nom composé de \350 ou \351 a la place de ce caractere ( il s'agit des 'e' accentués
Donc ça veut dire que ce caractere indique juste que le code n'est pas reconnu, mais on peut quand même transformer le contenu
donc il faut mettre dans SED \350 comme ça
sed -e s/\\350 /eg et surtout ne pas oublier les 2 anti slash (je n'en avais mis qu'un)
ainsi les 'e' accentués seront transformés en 'e'
Merci 1000 fois à lami20J pour son aide précieuse et le temps passé (au moins 2h je crois)

Frantzou
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 567
31 mars 2007 à 20:18
De rien :-)
0
Bonjour,

Désolé de revenir sur ce votre problème, mais bien que vos échanges m'ont permis de comprendre d'où vient mon problème, comment je fais pour renommer ou supprimer ces fichiers ?!?!?!

Si l'un de vous à la solution je suis preneur.
Merci d'avance.

Manu.
0
Pour être plus précis:
Lorsque je fais un ls -1Q je vois que mon caractères particulier est représenté par "\203" c'est à dire apparemment un "â".
Mais lorsque j'essaie de faire un ls, rm ou mv impossible de faire reconnaitre ce caractère.
C'est à dire qu'aucune des commandes ci-dessous ne fonctionnent.
ls -1Q | xargs rm {}
ls -1Q | sed 's/\\203/â/g' | xargs rm {}

Une idée ?
0