Forum Clubic

Suppression retour chariot avec Sed (sous DOS)

Bonjour,

Je souhaite supprimer tous les retours chariots d’un fichier TXT avec le logiciel Sed.
J’ai exécuté la ligne de commande suivante :

sed “:a;N;$!ba;s/\n//g” fichier1 > fichier2

Il me retire bien tous les retours chariots sauf le dernier du fichier.

Quelqu’un aurait-il une idée pour supprimer le dernier présent du fichier ?

Merci de votre aide

Sauf le dernier du fichier quelque soit sa place, ou uniquement quand il est en dernière position dans le fichier ?

Les fichiers textes sous Unix (et ses descendants) terminent leur ligne par un caractère “saut de ligne”, représenté par le symbole “\n” (appelé Line Feed et noté LF, code ASCII = 0A).

Les fichiers texte sous Dos (et ses descendants) terminent eux aussi leur ligne par un caractère “saut de ligne”, précédé d’un caractère retour chariot, représenté par le symbole “\r” (appelé Carriage Return et noté CR, code ASCII 0D). Ainsi, chaque ligne d’un fichier DOS se termine par la séquence CRLF, soit \r\n.
Edité le 25/09/2008 à 08:09

Bonjour,
En fait il me semble avoir 2 retour chariots en fin de fichier. Le dernier ne semble pas supprimable mais c’est celui d’avant que je souhaite enlever. Voici l’exemple du fichier :

1720220080200805000000360ROM2008092300000000001292000000000000000000000000000000000000000000001292000000000000XXXXX XXXXXXX 19 RUE CARNOT 11111VILLE 510207000731324561312368XXXXX XXXXXXX 00000000000000000001 E 2¶
1720220080200805000000440SOM2008092300000000003007000000000000000000000000000000000000000000003007000000000000XXXXXXX XXXXXX 11111VILLE 515135001800405874311290XXXXXXX XXXXXX 00000000000000000002 E 2¶
1720220080200805000000520TOM2008092300000000003007000000000000000000000000000000000000000000003007000000000000XXXXXXX XXXXXX 11111VILLE 515135001800405874311290XXXXXXX XXXXXX 00000000000000000002 E 2¶
1720220080200805000000790VOM2008092300000000003007000000000000000000000000000000000000000000003007000000000000XXXXXXX XXXXXX 11111VILLE 515135001800405874311290XXXXXXX XXXXXX 00000000000000000002 E 2¶

Avec la commande, les 3 premiers “¶” sont retirés mais pas le 4ème (le dernier " 2¶").

Merci