Substitution SED qui fonctionne pas. [Résolu]
Signaler
pcsystemd
pcsystemd
- Messages postés
- 582
- Date d'inscription
- dimanche 27 novembre 2005
- Statut
- Membre
- Dernière intervention
- 19 janvier 2021
pcsystemd
- Messages postés
- 582
- Date d'inscription
- dimanche 27 novembre 2005
- Statut
- Membre
- Dernière intervention
- 19 janvier 2021
A voir également:
- Substitution SED qui fonctionne pas.
- Substitution sed/vi ✓ - Forum - Shell
- Sed substitution - Conseils pratiques - Sed
- Sed substitution regex - Conseils pratiques - Sed
- Sed et substitutions balises html ✓ - Forum - Linux / Unix
- Substitution avec SED ✓ - Forum - Shell
4 réponses
zipe31
- Messages postés
- 36268
- Date d'inscription
- dimanche 7 novembre 2010
- Statut
- Contributeur
- Dernière intervention
- 19 janvier 2021
Salut,
Le problème c'est que ce ne sont pas de simples espaces que tu as mais des BOM (Indicateur d'ordre des octets).
Pour les supprimer il te faut trouver leur équivalence en hexadécimal (avec od par exemple), mais c'est pas gagné ;-\
Le problème c'est que ce ne sont pas de simples espaces que tu as mais des BOM (Indicateur d'ordre des octets).
Comp;Num;De;Cli;Impress;CTRY;CPCTL moy.;CPMPN moyen;Cot$
102_3211 | O , A bert , Alert | SY;673-081-7803;EUR;280;1M-bM-^@M-/522;18,40 %;0,65;119,84;182,4$
102_3303 | O , Famiy , Poltult | SY;869-869-0972;EUR;166;2 M-bM-^@M-/364;12,17 %;1,1;133,72;182,4$
102_2923 | 102_716 | O , RM-CM-)pue , Pa 11 | SP;806-507-5734;EUR;235;3M-bM-^@M-/076;7,64 %;1,56;119,08;366,28$
Pour les supprimer il te faut trouver leur équivalence en hexadécimal (avec od par exemple), mais c'est pas gagné ;-\
pcsystemd
- Messages postés
- 582
- Date d'inscription
- dimanche 27 novembre 2005
- Statut
- Membre
- Dernière intervention
- 19 janvier 2021
Merci zipe31.
Tu utilises quel éditeur pour voir les BOM car avec vim sous Linux je ne les vois pas!
J'ai fait un
Tu utilises quel éditeur pour voir les BOM car avec vim sous Linux je ne les vois pas!
J'ai fait un
:set nobombsous Vim pour voir si cela supprimer les BOM mais comme je n'arrive pas a afficher les BOM dans VIM!
Comp;Num;De;Cli;Impress;CTRY;CPCTL moy.;CPMPN moyen;Cot
102_3211 | O , A bert , Alert | SY;673-081-7803;EUR;280;1 522;18,40 %;0,65;119,84;182,4
102_3303 | O , Famiy , Poltult | SY;869-869-0972;EUR;166;2 364;12,17 %;1,1;133,72;182,4
102_2923 | 102_716 | O , Répue , Pa 11 | SP;806-507-5734;EUR;235;3 076;7,64 %;1,56;119,08;366,28
pcsystemd
- Messages postés
- 582
- Date d'inscription
- dimanche 27 novembre 2005
- Statut
- Membre
- Dernière intervention
- 19 janvier 2021
Merci beaucoup.
Encore une petite question.
Tu peux juste me dire a quoi correspond 'xe2\x80\xaf' ou si tu connais une doc qui explique?
Encore une petite question.
Tu peux juste me dire a quoi correspond 'xe2\x80\xaf' ou si tu connais une doc qui explique?
zipe31
- Messages postés
- 36268
- Date d'inscription
- dimanche 7 novembre 2010
- Statut
- Contributeur
- Dernière intervention
- 19 janvier 2021
C'est la représentation hexadécimale du code BOM.
Si je prends ton fichier de départ en ne gardant que les 3 chiffres encadrés par des points virgules j'ai ça :
Si je le passe à "od", j'obtiens le code hexa de chaque caractère :
Si je prends ton fichier de départ en ne gardant que les 3 chiffres encadrés par des points virgules j'ai ça :
$ cat f3
;1 522;
;2 364;
;3 076;
Si je le passe à "od", j'obtiens le code hexa de chaque caractère :
$ od -tx1 f3
0000000 3b 31 e2 80 af 35 32 32 3b 0a 3b 32 20 e2 80 af
0000020 33 36 34 3b 0a 3b 33 e2 80 af 30 37 36 3b 0a
0000037
zipe31
- Messages postés
- 36268
- Date d'inscription
- dimanche 7 novembre 2010
- Statut
- Contributeur
- Dernière intervention
- 19 janvier 2021
Je viens d'y repenser, mais sed est capable d'afficher les caractères non-imprimables en octal.
À partir de là c'est encore plus simple ;-))
;-))
À partir de là c'est encore plus simple ;-))
$ sed -n l f1
Comp;Num;De;Cli;Impress;CTRY;CPCTL moy.;CPMPN moyen;Cot$
102_3211 | O , A bert , Alert | SY;673-081-7803;EUR;280;1\342\200\257\
522;18,40 %;0,65;119,84;182,4$
102_3303 | O , Famiy , Poltult | SY;869-869-0972;EUR;166;2 \342\200\
\257364;12,17 %;1,1;133,72;182,4$
102_2923 | 102_716 | O , R\303\251pue , Pa 11 | SP;806-507-5734;EUR;2\
35;3\342\200\257076;7,64 %;1,56;119,08;366,28$
$ sed 's/ *\o342\o200\o257//' f1
Comp;Num;De;Cli;Impress;CTRY;CPCTL moy.;CPMPN moyen;Cot
102_3211 | O , A bert , Alert | SY;673-081-7803;EUR;280;1522;18,40 %;0,65;119,84;182,4
102_3303 | O , Famiy , Poltult | SY;869-869-0972;EUR;166;2364;12,17 %;1,1;133,72;182,4
102_2923 | 102_716 | O , Répue , Pa 11 | SP;806-507-5734;EUR;235;3076;7,64 %;1,56;119,08;366,28
;-))
Tiens, ceci devrait le faire :
;-))