Trouver un champ qui est entre parenthèses

Le
Kevin Denis
Bonjour,

j'ai plusieurs lignes d'enregistrements en texte.
Elles contiennent toutes (plus ou moins sur la fin) un code postal sur
deux chiffres entre parenthèses.
Ex:
expédition ce jour (joe) - imprimante - wifi (42) / ok
refus non motivé - (77)
etc..

Ma question est simple: comment extraire ces codes postaux?
J'ai essayé à coup de cut, mais il y a de nombreuses lignes qui contiennent
d'autres infos entre parenthèses avant ou après le code postal

Merci
--
Kevin
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Marc Bourguet
Le #25708672
Kevin Denis
Bonjour,

j'ai plusieurs lignes d'enregistrements en texte.
Elles contiennent toutes (plus ou moins sur la fin) un code postal sur
deux chiffres entre parenthèses.
Ex:
expédition ce jour (joe) - imprimante - wifi (42) / ok
refus non motivé - (77)
etc..

Ma question est simple: comment extraire ces codes postaux?
J'ai essayé à coup de cut, mais il y a de nombreuses lignes qui contiennent
d'autres infos entre parenthèses avant ou après le code postal



sed -e 's:.*(([0-9][0-9])).*:1:'

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Gugus
Le #25708662
Ce cher Kevin Denis
Bonjour,

j'ai plusieurs lignes d'enregistrements en texte.
Elles contiennent toutes (plus ou moins sur la fin) un code postal sur
deux chiffres entre parenthèses.
Ex:
expédition ce jour (joe) - imprimante - wifi (42) / ok
refus non motivé - (77)
etc..

Ma question est simple: comment extraire ces codes postaux?
J'ai essayé à coup de cut, mais il y a de nombreuses lignes qui contiennent
d'autres infos entre parenthèses avant ou après le code postal



cut n’est pas fait pour ça.
Il faudrait plutôt se tourner vers sed, awk, ou perl par exemple.

Quant à l’implémentation à proprement parler, je vous invite à vous documenter :)

--
Gugus [http://what.dafuq.it/]
Tanguy Ortolo
Le #25708682
Kevin Denis, 2013-10-07 17:37+0200:
j'ai plusieurs lignes d'enregistrements en texte.
Elles contiennent toutes (plus ou moins sur la fin) un code postal sur
deux chiffres entre parenthèses.
Ex:
expédition ce jour (joe) - imprimante - wifi (42) / ok
refus non motivé - (77)



grep -Eo '([[:digit:]]{2})' | grep -Eo '[[:digit:]]{2}'

--
. o .
. . o Tanguy
o o o
Kevin Denis
Le #25709652
Le 07-10-2013, Tanguy Ortolo
j'ai plusieurs lignes d'enregistrements en texte.
Elles contiennent toutes (plus ou moins sur la fin) un code postal sur
deux chiffres entre parenthèses.
Ex:
expédition ce jour (joe) - imprimante - wifi (42) / ok
refus non motivé - (77)



grep -Eo '([[:digit:]]{2})' | grep -Eo '[[:digit:]]{2}'



Je n'ai pas précisé, mais il peut y avoir d'autres chiffres sur la ligne:
echo "refus non motivé 424242 - (77) yapyapyap"
| grep -Eo '([[:digit:]]{2})' | grep -Eo '[[:digit:]]{2}'
42
42
42
77
mais je retiens l'idée.
--
Kevin
Kevin Denis
Le #25709642
Le 07-10-2013, Jean-Marc Bourguet
sed -e 's:.*(([0-9][0-9])).*:1:'



Merci
--
Kevin
Damien Wyart
Le #25710012
> grep -Eo '([[:digit:]]{2})' | grep -Eo '[[:digit:]]{2}'



* Kevin Denis
Je n'ai pas précisé, mais il peut y avoir d'autres chiffres sur la ligne:
echo "refus non motivé 424242 - (77) yapyapyap"
| grep -Eo '([[:digit:]]{2})' | grep -Eo '[[:digit:]]{2}'
42
42
42
77



Je pense qu'il fallait échapper les parenthèses dans la première
expression régulière :

$ echo "refus non motive 424242 - (77) yapyapyap"
| grep -Eo '([[:digit:]]{2})' | grep -Eo '[[:digit:]]{2}'
77

--
DW
Publicité
Poster une réponse
Anonyme