SED déroutant ?

Fermé
pc1008 Messages postés 5 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 29 mai 2011 - Modifié par pc1008 le 24/05/2011 à 07:35
pc1008 Messages postés 5 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 29 mai 2011 - 24 mai 2011 à 07:54
Bonjour,


Je souhaite supprimer toutes les séries de 2 caractères commençant par C2 (hexa) dans un fichier.

sed -e 's/\xc2.//g' < bd_es1.txt > bd_es2.txt ne fonctionne pas !

Alors que : sed -e 's/\xc2//g' ou sed -e 's/.//g' fonctionnent correctement (mais bien pas ce que je veux).

Je patauge ...

pc.

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
Modifié par jisisv le 24/05/2011 à 03:42
Effectivement !
ohand@osiris:~/tmp$ iconv -f latin1 -t utf8  brol.txt   
ÂBCD  
bbbbbÂBCD  
ÂBCÂBCDDÂBCD  
johand@osiris:~/tmp$ sed -e 's/\xC2.//g' < brol.txt   
CD  
bbbbbCD  
CCDDCD


Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
0
pc1008 Messages postés 5 Date d'inscription mardi 24 mai 2011 Statut Membre Dernière intervention 29 mai 2011
Modifié par pc1008 le 24/05/2011 à 07:59
A te lire j'ai l'impression que cela fonctionne chez toi.

Cependant :



-> je ne comprends pas comment cela peut fonctionner chez toi car le caractère  a pour code hexa C3 et tu filtres les C2!

-> avec le même fichier cela ne fonctionne tj pas chez moi

$ cat es1.txt
ÂBCD
bbbbbÂBCD
ÂBCÂBCDDÂBCD

$ sed -e 's/\xc3.//g' < es1.txt
ÂBCD
bbbbbÂBCD
ÂBCÂBCDDÂBCD

Bizarre, bizarre ... ? Si qq a une autre solution pour répondre à mon problème je laisserai tomber SED mais ceci j'aimerais comprendre ce qui se passe ?
0