IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Expressions régulières - Extraction de données Grep


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut Expressions régulières - Extraction de données Grep
    Bonjour,

    Je souhaite extraire les informations suivantes du fichier type qui liste les nouveaux paquets DEBIAN.

    J'aimerai récupérer les Versions ainsi que les noms des paquets dans le fichier suivant :

    http://ftp.fr.debian.org/debian/dist...86/Packages.gz

    J'utilise la commande suivante pour matcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    cat /home/trash/test_space/package_etch_final1 | grep -c 'Package: '
    cat /home/trash/test_space/package_etch_final1 | grep -c 'Version: '
    Le problème est que je match 194 noms de paquets et 200 numéros de versions.

    Est ce que quelqu'un aurait une expression rationnelle qui pourrais affiner cette sélection.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Est ce que quelqu'un aurait une expression rationnelle qui pourrais affiner cette sélection.
    Affiner ta recherche dans quel sens?

    qu'est ce que tu souhaites exactement avoir?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 15
    Par défaut
    Matcher les noms des paquets avec leurs versions.

    Le problème c'est que je ne trouve pas le même nombre.

  4. #4
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Est ce qu'on pourrait avoir :
    • un exemple de fichier en entrée
    • ce que tu voudrais isoler
    • ce qu'il faut éviter

    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  5. #5
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Sur l'énorme fichier pointé (19MB), je détecte 18071 packages, et autant de versions. Pour le grep, il faut bien vérifier que c'est en début de ligne (^...).

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [ ~]$ cat Packages | grep '^Version: ' | wc -l
    18071
    [ ~]$ cat Packages | grep '^Package: ' | wc -l
    18071

  7. #7
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Pour Ritual et Mygale 1978,
    le grep -c fait le même travail que wc -l. On peut simplifier le comptage de lignes par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    grep -c '^Version: ' Packages
    18071
    grep -c '^Package: ' Packages
    18071
    Oui, d'accord, c'est du détail...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Expression régulière: extraction de sous-chaine
    Par Icegirl dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2014, 11h07
  2. Réponses: 9
    Dernier message: 19/07/2013, 14h36
  3. Réponses: 6
    Dernier message: 05/05/2010, 10h18
  4. [Expression régulière] - Extraction d'un email
    Par kirsoul dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2006, 14h28
  5. expression réguliére récurente A.B.C donne ABC
    Par htristra dans le forum Langage
    Réponses: 11
    Dernier message: 02/02/2006, 12h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo