Re: remplacer le caractère "<92>" par une apostrophe
Bonsoir,
> le n° "<92>" est l'apostrophe mais de quel encodage ? (mystère et
> boulle de gomme) et c'est la sortie avec vim ...
>
> tandis que avec emacs c'est "\222" ( )
>
> voici un extrait en pièce jointe ...
Personnellement, sur ma machine, la commande « file » me dit que ton
fichier est en UTF-8 et je comprends que le caractère qui pose problème
est le caractère dont le code point unicode est U+0092 (attention, le
code point ce n'est pas la même chose que l'encodage numérique).
~$ file /tmp/out.txt
/tmp/out.txt: UTF-8 Unicode text, with very long lines
En fait, il suffit a priori de saisir le caractère dans sed et un simple :
sed "s/<LE-CARACTÈRE>/'/g" le-fichier.txt
devrait marcher, exactement comme si on voulait remplacer les « a » par
des « ' » sauf qu'ici ce n'est pas un « a » mais un caractère un peu
étrange.
Une première méthode que j'ai pu tester est de générer le caractère avec
Perl (a priori déjà installé sur ta Debian à 99,99%) :
char=$(perl -C -wE 'say "\x{0092}"')
sed -i "s/$char/'/g" le-fichier.txt
Une autre façon de faire est de taper le caractère directement dans le
terminal (là je sais pas si ça marchera partout) en tapant sur le clavier
(alors qu'on est dans un terminal) « shift + u + le-code-point-du-caractère ».
Donc si je tape les caractères suivants :
=> « sed -i "s/ »
=> puis « shift + u + 0092 »
=> puis « /'/g" le-fichier.txt »
=> puis Entrée
alors la commande fonctionne chez moi.
Bref, les 2 méthodes ont fonctionné sur ma Debian Wheezy avec ton
fichier en pièce jointe (md5sum => 83070902dea2600878d40602c396c0d4)
sur mon terminal qui est Terminator en l'occurrence.
Voilà, j'espère qu'au moins une des deux méthodes marchera chez toi.
--
François Lafont
Reply to: