Re: Conversion carateres hexa dans fichier

Page principale

Répondre à ce message
Auteur: jeanluctux
Date:  
À: guilde
Sujet: Re: Conversion carateres hexa dans fichier
Donc, voici les résultats.

Je reformule le problème (un peu différemment du post original).
Sous windows, la commande
C:\bin\sed.exe "s/^CommonDir=.*/CommonDir=path1" conf1.ini > conf2.ini
transforme les fins de ligne windows de conf1.ini en fin de ligne de type
unix dans le fichier conf2.ini
Et ce sont ces fins de ligne "non windows" dans conf2.ini qui m'embêtent.

Ma version de sed :
C:\bin\sed.exe -V
GNU sed version 4.0.7
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
to the extent permitted by law.


Essai des diverses solutions proposées :

C:\PN-300\etc\sed.exe p conf2.ini > conf2_out.ini
conf2_out.ini n'a pas les fins de ligne attendues.
Ca ne marche pas.

C:\PN-300\etc\sed.exe "s/$//" conf2.ini > conf2_out.ini
conf2_out.ini n'a pas les fins de ligne attendues.
Ca ne marche pas.


C:\PN-300\etc\sed.exe -e "s/$/\r/" conf2.ini > conf2_out.ini
oui, succès.


C:\bin\recode.exe ../crlf conf2.ini
oui, succès.
J'ai recopié sans comprendre le ../crlf et ça marche direct.


C:\bin\unix2dos.exe conf2.ini
oui, succes après récupération sur http://www.bastet.com/
Sous linux, j'ai viré unix2dos et dos2unix pour les remplacer par pseudo
équivalent (perl -pi -e "s:\x0A:\x0D\x0A:g" file.txt ) parce qu'une fois, j'ai
eu un fichier (d'entrée) qui contenait un mélange des deux ( CR+LF et LF)
et unix2dos n'a pas nettoyé ça proprement, et je n'avais pas vu, et ça m'a valu
des problèmes assez énervants. Donc, le unix2dos classique, j'évite au maximum.


Conclusion :
Je vais donc utiliser ceci :
    C:\bin\sed.exe --in-place -e "s/^CommonDir=.*/CommonDir=MonPath1/; s/$/\r/" conf1.ini



Merci à tous.

Jean-Luc.