Bonjour,
Je cherche a réaliser un script permettant de transformer tt les caractères "\n" en "\r\n" pour une compatibilité avec une machine a commande numérique.
par exemple en utilisant hexdump -c fic.txt je cherche a obtenir :
Source :
m e r c i a l i n u x f r . o r g \n
Resultat
m e r c i a l i n u x f r . o r g \r \n
J'ai essayé de nombreux scripts utilisant tr, grep et sed mais rien n'y fait, car le fait que mes occurences soit des métacaractères a l'air de poser problème.
Merci de votre aide
# format de passage à la ligne
Posté par niol (site web personnel) . Évalué à 2.
L'utilitaire que tu cherches est unix2dos il me semble. Sur debian, c'est le paquet sysutils.
Voir aussi cette astuce : http://linuxfr.org/tips/74.html
# fromdos / todos
Posté par Ben (site web personnel) . Évalué à 3.
sinon, un sed:
$ sed -i -e 's/\n/\r\n/g' monfichier.txt
devrait le faire aussi.. (pas testé)
Tout homme qui dirige, qui fait quelque chose, a contre lui ceux qui voudraient faire la même chose, ceux qui font précisément le contraire, et surtout la grande armée des gens d'autant plus sévères qu'ils ne font rien du tout. -- Jules Claretie
# Mandrake 10
Posté par stéphane . Évalué à 1.
Le pb est que ma distrib mandrake 10.0 ne possède pas de unix2dos, j'ai testé le sed -i -e 's/\n/\r\n/g' monfic mais ca ne fonctionne pas non plus.
Peut-etre faut il rajouter des '' ie : sed -i -e 's/'\n'/'\r\n'/g' ( testé mais fonctionne pas )
ou des \\r \\n ?? (fonctionne pas non plus )
Merci bcp
[^] # Re: Mandrake 10
Posté par netsurfeur . Évalué à 2.
Que te dis urpmi unix2dos ?
Sinon, tu peux ajouter les \r avec sed:
sed 's/$/^M/' < fic.txt > fic2.txt
J'ai testé, ça fonctionne.
Pour saisir ^M, il faut taper CTRL-V puis CTRL-M
[^] # Re: Mandrake 10
Posté par niol (site web personnel) . Évalué à 2.
$ perl -pi -e 's/\n/\r\n/g' test.txt, j'ai exactement ce que je veux il me semble.
(désolé pour l'ironie, je n'ai pu m'empêcher, j'espère que tu vas résoudre ton problème)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.