Awk, Sed - Supprimer caractères identiques au délimiteur de champ

Résolu
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -  
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un fichier qui contient des lignes de la sorte:

1245|titou|truc62|@mail.com|5487965|ker#254|15/02/2019


Le délimiteur est le pipe
|


Dans plusieurs lignes, j'ai des adresses mails avec un caractère pipe
|
(et oui ) ainsi que des caractères
#
que je dois supprimer afin que ces pipes ne soient pas considérer comme délimiteur!

C'est possible de supprimer tous ces pipes et ces
#
non voulus?

Merci d'avance.

Configuration: Debian Jessie , Firefox


A voir également:

4 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

Le pipe dans les adresses mail est toujours au même endroit ?

0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
comme ça ?
$ awk -F "[|]" '{gsub("[|]@", "@")} {print $3}' fichier
truc62@mail.com
0
lEprofSonDkon Messages postés 211 Date d'inscription   Statut Membre Dernière intervention   13
 
salut,

en amont, c'est toi qui a décidé du format du fichier ?

je pense qu'un caractère NULL serait un meilleur délimiteur quand on ne limite pas ce que peuvent entrer les utilisateurs.
est-ce que je me trompe ?
0
pcsystemd Messages postés 702 Date d'inscription   Statut Membre Dernière intervention   23
 
Pour répondre.

@zipe31
Non pas toujours au même endroit

@dubcek
Merci je vais tester.

lEprofSonDkon
Hélas non on est pas maître du format de fichier ce serait plus simple!

Merci a vous
0