remplacer le caractère "" par une apostrophe
Le
Bernard Schoenacker

bonjour,
j'ai essayé avec sed : sed "s/xc2x92/'/g"
sans résultat
slt
bernard
j'ai essayé avec sed : sed "s/xc2x92/'/g"
sans résultat
slt
bernard
sed -i "s#<92>#'#g"
a écrit :
bonjour,
aucun résultats ...
slt
bernard
Les commandes proposées telles que
sed "s/<92>/'/g"
remplacent le mot ou la chaîne de caractère "<92>" par l'apost rophe.
Mais s'il s'agit d'un seul caractère, il faudrait en savoir un peu p lus,
car <92> est alors sa représentation codée
dans un autre codage...
François
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
Le Thu, 08 Oct 2015 21:37:36 +0200,
Francois Meyer
bonjour,
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 ...
la réponse avec file :
file AAAStatut_ag_le_phare_oct_2015.txt
AAAStatut_ag_le_phare_oct_2015.txt: Non-ISO extended-ASCII text, with
very long lines
je sent que iconv sera de la partie ....
slt
bernard
--MP_/7pnF2SrFz1JYj/ZnC3zFnVe
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename=out.txt
LÂordre du jour est fixé par la direction. Seules sont valables l es résolutions prises par lÂassemblée générale sur les points inscrits à lÂordre du jour
La présidence de lÂassemblée générale appartient a u président
Toutes les délibérations et résolutions de lÂassemblà ©e générale font lÂobjet dÂun procès-verbal et s ont consignées dans le registre des «délibération des a ssemblées générales» , signées par le préside nt et le secrétaire. Il est également tenu une feuille de prà ©sence qui est signée par chaque membre et certifiée conforme p ar le président et le secrétaire
--MP_/7pnF2SrFz1JYj/ZnC3zFnVe--
Ça serait-y pas du Windows-1252, par hasard ? U+2019 est le
guillemet-apostrophe (x92 en W-1252 = 146 en décimal et 222 en octal…
l'étau se ressert !). Auquel cas, éventuellement, un
$ iconv -f WINDOWS-1252 -t UTF-8 filename.txt
… pour redresser la situation ?
--
___________________
| $ post_tenebras ↲ | waouh !
| GNU / | /
| -- * -- | o
| $ who ↲ / |_-- ~_|
| Alexandre Hoïde | _/| |
-------------------
Alexandre Hoïde
bonjour,
merci du tuyau mais je l'ai employé avant de répondre et tout est
rentré dans l'ordre ....
iconv -f windows-1252 -t UTF-8 file.txt >file-1.txt
slt
bernard
Je t'en prie !
Nous sommes les carabiniers
La sécurité des foyers
Mais par un malheureux hasard
Au secours des particuliers
Nous arrivons toujours trop tard.
--
___________________
| $ post_tenebras ↲ | waouh !
| GNU / | /
| -- * -- | o
| $ who ↲ / |_-- ~_|
| Alexandre Hoïde | _/| |
-------------------
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
Comment remplacer cette chaîne dans un fichier :
</table>' par </table>
(retirer juste l'apostrophe après </table>)
J'ai bien tenté ça, mais ça marche pas :
sed -i "s#</table>'#</table>#g" fichier
Je précise que </table>' se trouve tout à la fin du fichier.
André
Merci, je vais tester ASAP,
mais pourquoi répondre en privé ?
ça peut aider des membres de la liste... et c'est le but.
Surtout si tu es enseignant :-)
André