Rajout d'un préfixe sur numéro de téléphone
Résolu
JsuisNul
Messages postés
137
Statut
Membre
-
JsuisNul Messages postés 137 Statut Membre -
JsuisNul Messages postés 137 Statut Membre -
Bonjour,
Je souhaiterai par un post-traitement pouvoir rajouter l'indicatif français à des numéros de téléphone.
j'ai un fichier plat du genre :
AAAAA;BBBBBB;CCCCCC;0601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;0601155204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;00268601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;+268601030204;DDDDD;EEEEE
Et je souhaite avoir cela :
AAAAA;BBBBBB;CCCCCC;+33601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;+33601155204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;00268601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;+268601030204;DDDDD;EEEEE
Donc pas de substitution si un indicatif est déjà présent sur le numéro ( numéro commençant par "00" ou "+") sinon on remplace le premier zéro par "+33".
J'ai déjà un script de post-traitement (suppression des espaces non significatifs via un sed)
Merci pour votre aide car je ne maîtrise vraiment pas le sujet.
Je souhaiterai par un post-traitement pouvoir rajouter l'indicatif français à des numéros de téléphone.
j'ai un fichier plat du genre :
AAAAA;BBBBBB;CCCCCC;0601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;0601155204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;00268601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;+268601030204;DDDDD;EEEEE
Et je souhaite avoir cela :
AAAAA;BBBBBB;CCCCCC;+33601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;+33601155204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;00268601030204;DDDDD;EEEEE
AAAAA;BBBBBB;CCCCCC;+268601030204;DDDDD;EEEEE
Donc pas de substitution si un indicatif est déjà présent sur le numéro ( numéro commençant par "00" ou "+") sinon on remplace le premier zéro par "+33".
J'ai déjà un script de post-traitement (suppression des espaces non significatifs via un sed)
Merci pour votre aide car je ne maîtrise vraiment pas le sujet.
Configuration: Windows / Chrome 76.0.3809.132
A voir également:
- Rajout d'un préfixe sur numéro de téléphone
- Se connecter à gmail sur téléphone - Guide
- Téléphone - Guide
- Méfiez-vous si ce petit point de couleur s'allume dans un coin de l'écran de votre téléphone - Accueil - Protection
- Prefixe telephone - Guide
- Regle sur telephone - Guide
3 réponses
$ awk 'BEGIN {FS=OFS=";"} $18 !~ /^'\''(+|00)/ {sub("0", "+33", $18)} {print $0}' fichier2
'0449003021';'00000162';'00000162';'BOBO';;'TOTO';'bobo.toto@free.fr';;;'1970-01-20';'06 RUE ALMODIS';;;'02880';'SOISSONS';'FR';;'+33657087624';;;;;'FR';'2005-08-28';;;;;;;;;;;;;;;;;;'ATE';'078';'DERTIS AERO';'078021';'DERTIS AERO. BLAG';'NON CADRE';
Salut,
Sous réserve qu'il n'existe aucun autre champs commençant par un zéro suivi d'un chiffre entre 1 et 9…
Sous réserve qu'il n'existe aucun autre champs commençant par un zéro suivi d'un chiffre entre 1 et 9…
sed 's/;0\([1-9]\)/;+33\1/'devrait le faire ;-)
Ok. Ci-joint une ligne du fichier.
Le numéro de tel est dans le champ 18.
En gras tout les champs pouvant commencé par un zéro. Je ne l'avais pas préciser mais tous les champs sont bornés avec des simples cotes.
'0449003021';'00000162';'00000162';'BOBO';;'TOTO';'bobo.toto@free.fr';;;'1970-01-20';'06 RUE ALMODIS';;;'02880';'SOISSONS';'FR';;'0657087624';;;;;'FR';'2005-08-28';;;;;;;;;;;;;;;;;;'ATE';'078';'DERTIS AERO';'078021';'DERTIS AERO. BLAG';'NON CADRE';
Merci Zipe31
Le numéro de tel est dans le champ 18.
En gras tout les champs pouvant commencé par un zéro. Je ne l'avais pas préciser mais tous les champs sont bornés avec des simples cotes.
'0449003021';'00000162';'00000162';'BOBO';;'TOTO';'bobo.toto@free.fr';;;'1970-01-20';'06 RUE ALMODIS';;;'02880';'SOISSONS';'FR';;'0657087624';;;;;'FR';'2005-08-28';;;;;;;;;;;;;;;;;;'ATE';'078';'DERTIS AERO';'078021';'DERTIS AERO. BLAG';'NON CADRE';
Merci Zipe31
Je reviens vers vous car je viens de remarquer qu'il y a des cas ou ça ne fonctionne pas correctement :
j'ai des résultats comme suit :
+33664450205 => +3366445+33205
+33609687332 => +336+339687332
+33684453033 => +33684453+3333
En gros j'ai un pb avec les numéros qui sont déjà au format international
Je remets la ligne de commande tels que je l'ai écris:
awk 'BEGIN {FS=OFS=";"} $18 !~ /^(+|00)/ {sub("0", "+33", $18)} {print $0}' Fic1 > Fic2
Quelqu'un peut il m'aider svp car il me semble que la substitution ne doit se faire qu'en début de champ ?
Merci d'avance.
y a-t-il des espaces au début ?
montre des données
En fait il faudrait une condition supplémentaire à ta syntaxe qui vérifie juste que le "0" à remplacer par "+33" soit bien en début de champ et pas ailleurs.
Avec l'exemple donné, on voit bien qu'il remplace tous les zéros rencontrés parce que le champ commence par un "+", ce qui valide bien la condition ();-(
+33664450205 => +3366445+33205
+33609687332 => +336+339687332
+33684453033 => +33684453+3333
en remplaçant $18 par $4,ca traite correctement les données du post #1