Pages : 1
#1 Le 13/01/2019, à 17:51
- Sciensous
sed et ° [RÉSOLU]
bonsoir, un soucis avec sed:
je cherche à traiter des fichiers avec sed; or dès que des ° apparaissent le traitement "bug" (s'arrête ?)
j'ai fini par trouver avec cat -v qu'en fait les ° sont interprétés par M-0 au lieu de M-BM-0
(sûrement un fichier d'un autre monde... bien répandu par défaut)
Quelqu'un a une idée pour pouvoir traiter ces fichiers correctement ?
Dernière modification par Sciensous (Le 14/01/2019, à 22:36)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#2 Le 13/01/2019, à 18:48
- pingouinux
Re : sed et ° [RÉSOLU]
Bonsoir,
Tu n'aurais pas un exemple de quelques lignes, par hasard ?
Édité : Inutile, j'ai reproduit l'erreur, et vais regarder
Dernière modification par pingouinux (Le 13/01/2019, à 18:51)
Hors ligne
#3 Le 13/01/2019, à 18:58
- pingouinux
Re : sed et ° [RÉSOLU]
Finalement, j'avais mal testé, et ça a l'air de marcher.
sed 's/°/chaine/' fichier
Hors ligne
#4 Le 13/01/2019, à 22:03
- Sciensous
Re : sed et ° [RÉSOLU]
hum ça aurait été trop facile mais j'y ai cru
je mets un exemple de fichier en espérant que le codage ne sera pas modifié:
EDIT: à l'aide de hd, je vois qu'en hexa le ° est B0 au lieu du couple C2B0
donc je pourrais le faire en binaire, sauf si quelqu'un a une solution "tout texte" pour sed
EDIT2: je vois aussi dans ma boule de cristal du net que je peux passer par sed "s/\xBO/°/g"
je vous tiens au courant si ça marche ou non
Dernière modification par Sciensous (Le 13/01/2019, à 22:11)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#5 Le 13/01/2019, à 22:41
- diesel
Re : sed et ° [RÉSOLU]
J'ai l'impression que ton problème vient du fait que tu essayes de traiter un fichier qui n'est pas codé en UTF8 sur un système qui, lui, est en UTF8.
Amicalement.
Jean-Marie
Je déteste qu'on cherche à me faire passer pour un con, j'y arrive déjà très bien tout seul.
Le mort, il sait pas qu'il est mort ; c'est pour les autres que c'est dur.................... Pour les cons, c'est pareil.
Hors ligne
#6 Le 13/01/2019, à 22:50
- pingouinux
Re : sed et ° [RÉSOLU]
Le format de ton fichier est de l'ISO-8859 et non de l'UTF-8.
$ file test.dat
test.dat: ISO-8859 text
Tu peux faire ceci :
$ sed 's/\xb0/chaine/' test.dat
#Lun 07
07-16:00 6 chaineC
ou bien
$ iconv -f ISO-8859-1 test.dat | sed 's/°/chaine/'
#Lun 07
07-16:00 6 chaineC
et si tu veux revenir dans le format d'origine
$ iconv -f iso-8859-1 test.dat | sed 's/°/chaine/' | iconv -t ISO-8859-1
#Lun 07
07-16:00 6 chaineC
Hors ligne
#7 Le 14/01/2019, à 22:35
- Sciensous
Re : sed et ° [RÉSOLU]
merci pingouinux (et diesel83140), un réencodage était bien la solution
iconv -t isoISO-8859 test.dat -o test.dat
introduite dans le script et ça marche )
Dernière modification par Sciensous (Le 14/01/2019, à 22:35)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
Pages : 1