Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 17/11/2008, à 16:31

Nick_rivers

[Résolu] rgrep ! affinier une recherche

Bonjour à tous,

voila j'aimerai avoir une indication

j'explique mon problème, je dispose d'un fichier xml, dans lequel j'effectue une recherche pour en extraire certaines informations. En l'occurence le Code EAN.

j'execute donc la commande :

rgrep "codeEan\=*" monfichier.xml

il me retourne bien les codes ean présent, sous la forme

<Product codeEan="37000124455452">

j'aimerai trouver une solution pour n'avoir que le "code ean=000000000" et non le reste de la balise.

le but final étant de pouvoir voir les doublons présent donc par la suite utiliser sed ?

en vous remerciant d'avance.

Dernière modification par Nick_rivers (Le 18/11/2008, à 16:56)

Hors ligne

#2 Le 17/11/2008, à 16:45

tshirtman

Re : [Résolu] rgrep ! affinier une recherche

tu peut utiliser sed, mais cut est plus simple

là je ferais

rgrep "codeEan\=*" monfichier.xml |cut -d '"' -f 1

(delimotator = ", et field = 1.

edit à non pardon tu veux garder "code ean", sépare plutot par espace alors, et compte les mots, si tu as un problème avec des espaces multiples, utilise "tr -s ' ' ' '" avant le cut.

Hors ligne

#3 Le 17/11/2008, à 16:56

Nick_rivers

Re : [Résolu] rgrep ! affinier une recherche

merci pour la réponse !

la commande me retourne :

<Product codeEan=

j'étais tombé sur quelque chose de similaire en essayant ! smile

et j'aimerai bien n'avoir que :

codeEan="37000124455452"

je vais continuer, bien finir par trouver

merci cool

Hors ligne

#4 Le 17/11/2008, à 17:04

tshirtman

Re : [Résolu] rgrep ! affinier une recherche

rgrep "codeEan\=*" monfichier.xml |cut -d ' ' -f 2|cut -d'>' -f1

plus haut avec " comme délimiteur il fallait -f2 et non 1.

Dernière modification par tshirtman (Le 17/11/2008, à 17:05)

Hors ligne

#5 Le 17/11/2008, à 17:10

Nick_rivers

Re : [Résolu] rgrep ! affinier une recherche

je viens de m'en rendre compte !

rgrep "codeEan\=*" monfichier.xml |cut -d '=' -f 2|cut -d'>' -f1

ça me ressort ce que je voulais ! smile

Merci de ta patience et pour tes réponses rapides wink

ps je citais le sed plus haut c'était pour la suite faire un tri et traiter les doublons éventuels

Dernière modification par Nick_rivers (Le 17/11/2008, à 17:14)

Hors ligne

#7 Le 17/11/2008, à 17:45

Nick_rivers

Re : [Résolu] rgrep ! affinier une recherche

résolu ! cool

merci

Hors ligne

#8 Le 17/11/2008, à 18:49

Totor

Re : [Résolu] rgrep ! affinier une recherche

Bonsoir,

Il existe une solution grep sans utiliser les cut qui est d'utiliser l'option -o :

rgrep -o "codeEan\=\"[0-9]*\"" monfichier.xml

Note : je suppose que monfichier.xml n'est pas "fixe", sinon l'utilisation de l'option -r n'a pas d'intérêt (rgrep)


-- Lucid Lynx --

Hors ligne

#10 Le 18/11/2008, à 09:50

Nick_rivers

Re : [Résolu] rgrep ! affinier une recherche

je cherche maintenant à faire un script pour trouver les doublons des code ean présents

effectuer une boucle qui compare les codes présents. Du genre comparer avec la ligne précédente et si identique extraire les doublons.

je pense que c'est le plus simple ?

merci

Hors ligne

#11 Le 18/11/2008, à 11:20

Totor

Re : [Résolu] rgrep ! affinier une recherche

Ceci devrait faire l'affaire :

rgrep -o "codeEan\=\"[0-9]*\"" monfichier.xml|sort|awk 'BEGIN {old=""} { if (old == $0) {print}; old=$0 }' | sort -u

EDIT : ajout du -u

Dernière modification par Totor (Le 18/11/2008, à 13:43)


-- Lucid Lynx --

Hors ligne

#12 Le 18/11/2008, à 16:56

Nick_rivers

Re : [Résolu] rgrep ! affinier une recherche

Merci pour la réponse ! j'ai également fini par trouver une solution !

Hors ligne