Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1023 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Sed] Remplacer les points par des espaces dans un numéro de téléphone

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Sed] Remplacer les points par des espaces dans un numéro de téléphone

n°1037951
ecliptux
Oui. Enfin si peut-être.
Posté le 28-04-2008 à 15:48:45  profilanswer
 

Je gère tous mes contacts sous Thunderbird et j'ai eu la mauvaise habitude d'enregistrer tous les n° de téléphone sous la forme 01.02.03.04.05 au lieu de la forme (conforme à la normalisation française) 01 02 03 04 05 (avec des espaces donc).
 
J'essaye depuis une bonne heure de trouver la commande qui va bien, sans succès. Voilà où j'en suis resté :

Code :
  1. sed -e "s/^\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9][0-9]\)\.\([0-9][0-9]\)$/^\([0-9][0-9]\)\ \([0-9][0-9]\)\ \([0-9][0-9]\)\ \([0-9][0-9]\)\ \([0-9][0-9]\)$/g" abook.mab > abook.mab.new


Avant j'avais essayé plus simple, mais déjà sans succès :

Code :
  1. sed -e 's/^[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]\.[0-9][0-9]$/^[0-9][0-9]\ [0-9][0-9]\ [0-9][0-9]\ [0-9][0-9]\ [0-9][0-9]$/g' abook.mab > abook.mab.new


 
Si quelqu'un peu me dépanner, c'est pas de refus :)


Message édité par ecliptux le 28-04-2008 à 16:22:07
mood
Publicité
Posté le 28-04-2008 à 15:48:45  profilanswer
 

n°1037952
franceso
Posté le 28-04-2008 à 15:59:58  profilanswer
 

Voici ce que ça donnerait en perl :

~> echo 12.34.56.78.90 | perl -pne 's/(\d\d)\.(\d\d)\.(\d\d)\.(\d\d)\.(\d\d)/$1 $2 $3 $4 $5/g'
12 34 56 78 90


Y a plein d'autres méthodes pour faire ça plus joliment, mais c'est ce qui se rapproche le plus de ce que tu voulais faire. En sed, ça s'écrit à peu près pareil sauf que c'est encore moins lisible...


Message édité par franceso le 28-04-2008 à 16:00:23

---------------
TriScale innov
n°1037954
ecliptux
Oui. Enfin si peut-être.
Posté le 28-04-2008 à 16:12:01  profilanswer
 

merci franceso mais comment l'appliquer à un fichier avec moult numéros ?
 
L'idée étant d'utiliser une expression régulière pour chopper tous les n° de tél. à la volée...

n°1037955
franceso
Posté le 28-04-2008 à 16:16:04  profilanswer
 

exactement de la même manière que si c'était sed ou n'importe quoi d'autre qui faisait la transformation :

perl -pne gnagnagna abook.mab > abook.mab.new


---------------
TriScale innov
n°1037956
ecliptux
Oui. Enfin si peut-être.
Posté le 28-04-2008 à 16:21:33  profilanswer
 

Autant pour moi, je n'avais pas bien saisi la manip :)
Ça a fonctionné, merci bcp :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Sed] Remplacer les points par des espaces dans un numéro de téléphone

 

Sujets relatifs
Grep et les espaces -> Résoluscript avec commande SED
modem openwrt, livebox et téléphoneAfficher une ligne d'un fichier à partir d'un numéro de ligne
BASH Passage de paramètre contenant des espacesCommande SED
Compatibilité téléphone portable + linuxScript rsync et dossier avec espaces
Sed et execution d'une commande[SAMBA] gestion des espaces
Plus de sujets relatifs à : [Sed] Remplacer les points par des espaces dans un numéro de téléphone


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR