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

Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
-
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


Afficher la suite 

4 réponses

Messages postés
37232
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
17 octobre 2019
4099
0
Merci
Salut,

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

Commenter la réponse de zipe31
Messages postés
17861
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
17 octobre 2019
4475
0
Merci
hello
comme ça ?
$ awk -F "[|]" '{gsub("[|]@", "@")} {print $3}' fichier
truc62@mail.com
Commenter la réponse de dubcek
Messages postés
213
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
27 septembre 2019
13
0
Merci
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 ?
Commenter la réponse de lEprofSonDkon
Messages postés
558
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
19 juin 2019
16
0
Merci
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
Commenter la réponse de pcsystemd