Bonjour.

j'effectue une migration de données entre deux systèmes de bdd différents.
Dans le premier, il doit y avoir un | après le dernier champ suite à un unload dans un fichier texte. Dans le second, bien évidemment sinon c'est pas drôle, le | indique la présence d'un autre champ.

Je cherche donc à faire un sed pour enlever le | de fin de ligne (le dernier champ est toujours null dans ce cas là).

Avec l'éditeur vi, je fais la commande

:% s/||$/|/


et tous mes | de fin de lignes sont supprimés.

Seulement, je dois automatiser cela, et avec la ligne de commande en bash

sed "s/||$/|/" monfich1 > monfich2


les | restent en place.

J'ai essayé de protéger par \ le $ en me disant qu'il pouvait être interprété comme un début de variable, mais rien n'y fait.

Auriez-vous une solution à me proposer ?

PS : dans le même script, juste avant, il y a la commande

sed "s/:00|/|/g" monfich > monfich1


qui fonctionne parfaitement



EDIT : Résolu il y avait un caractère spécial windows à la c..... en fin de ligne ...

du coup la commande

sed "s/||.$/|/" monfich1 > monfich2


fonctionne très bien.