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.
Partager