Awk, Sed - Supprimer caractères identiques au délimiteur de champ [Résolu/Fermé]

Signaler
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
-
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
-
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


4 réponses

Messages postés
35321
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
4 août 2020
5 315
Salut,

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

Messages postés
18187
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
31 juillet 2020
4 932
hello
comme ça ?
$ awk -F "[|]" '{gsub("[|]@", "@")} {print $3}' fichier
truc62@mail.com
Messages postés
209
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
14
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 ?
Messages postés
570
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
4 août 2020
16
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