Bonjour,
comment supprimer les 2 dernier caratéres (chr(13) et chr(10)) d'un fichier,
sachant que le fichier est crée sous unix et convertir en format DOS avec la fonction unix2dos
Merci d'avance,
Cordialement.
Bonjour,
comment supprimer les 2 dernier caratéres (chr(13) et chr(10)) d'un fichier,
sachant que le fichier est crée sous unix et convertir en format DOS avec la fonction unix2dos
Merci d'avance,
Cordialement.
par exemple avec une uniligne perl
perl -pi.bak -e 's/\r\n//g' my_file.txt
Saaaaluuut Nounou!!
J'ai l'impression que le problème est mal posé.
En principe, les fichier générés sous Unix n'ont qu'un seul caractère en fin de ligne, pas 2. Et sous DOS, ils en ont deux.
En principe toujours, la commande suivante convertit un fichier Unix au format DOS:
perl -pi -e 's/\n/\r\n/g' file.txt
Mais unix2dos fait essentiellement la même chose (et j'ai vu au moins un système où la commande unix2dos était un alias pour la commande ci-dessus ou une variation très proche).
Je pense qu'il faut que tu analyses un peu plus la structure de tes fins de lignes.
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Merci pour la réponse mais ....
Pour bien expliquer mon problème je vais cité un exemple :
mon fichier : file.txt contient "Bonjour"
en hexa : 426f 6e6a 6f75 720d 0a
Lorsque j’exécute la commande perl, j'obtient
en hexa : 426f 6e6a 6f75 720a
je veux supprimer complètement "x0a" ou la remplacer par un espace
Si mon fichier contient un saut de ligne, je ne veux pas supprimer ce retour chariot
exemple :
Bonjour,
et merci
en hexa : 426f 6e6a 6f75 720d 0a65 7420 6d65 7263
690d 0a
résultat attendu:
en hexa : 426f 6e6a 6f75 720d 0a65 7420 6d65 7263
6920
Je répète ce que j'ai dit, ton problème semble mal posé. D'après ton message d'origine, tu désires en définitive mettre ton fichier au format DOS.
Si les fins de lignes contiennent VRAIMENT "0D 0A" (en hex.) en fin de ligne, alors cela veut dire que ton fichier est déjà au format DOS. La chaîne 'x0Dx0A' est le retour à la ligne DOS (alors que le retour à la ligne UNix ne contient que x0A). Tu n'as donc rien à faire. Le fichier est déjà au bon format.
Si tu le transfères de la plateforme Unix vers la plateforme DOS par FTP, contente-toi de faire un transfert en mode binaire, afin que le FTP n'ajoute encore un caractère supplémentaire.
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Merci pour votre aide,
Par obligation, j'ai changer l'outil et mon est bien résolu
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager