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 :

Cherche Expression rationnelle pour isoler une chaîne


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut Cherche Expression rationnelle pour isoler une chaîne
    zsh-doc (4.3.2-25) zsh documentation - info/HTML format

    Bonjour, je n'arrive pas à trouver l'expression régulière qui me permettrait d'isoler le nom du paquet :

    zsh-doc

    puis le numéro de version :

    4.3.2-25

    Est ce que quelqu'un qui serait bon en expressions régulières pourrait m'aider ?

    Merci d'avance

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ echo "zsh-doc (4.3.2-25) zsh documentation - info/HTML format" | grep "zsh-doc (4.3.2-25)"


    désolé, mais je ne comprends pas ton problème.
    Si tu cherches spécifiquement zsh-doc pour inventer une expression régulière alors que tu as une chaîne constante ?!

  3. #3
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Je me suis mal expliquer peut-être :

    J'ai récupéré le fichier .gz qui j'ai converti en .txt qui contient la liste des nouveaux paquets de Debian :

    http://packages.debian.org/stable/al...?format=txt.gz

    Pour toutes les lignes contenus dans ce fichier, je souhaite afficher uniquement le nom du paquet ainsi que son numéro de version afin de les stocker dans une base données de la façon suivante :

    Par exemple pour ces deux lignes de la liste des paquets :

    zssh (1.5c.debian.1-1) interactive file transfers over ssh
    zsync (0.5-1) client-side implementation of the rsync algorithm

    J'aimerai connaître deux expressions rationnelle :

    Une qui me donne avec l'association du cat et du grep la sortie suivante :

    zssh

    Puis une seconde toujours avec la même association la sortie suivante :

    1.5c.debian.1-1

    Et ceux pour tous les paquets, j'espère que je me suis mieux expliquer.


  4. #4
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    Ça le fait à 99%, je te laisse terminer

    fichier.txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    zssh (1.5c.debian.1-1) interactive file transfers over ssh
    zsync (0.5-1) client-side implementation of the rsync algorithm
    Commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -o "[^ ]\+ ([0-9][^)]\+)" fichier.txt
    http://www.shellunix.com/regexp.html

    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    zssh (1.5c.debian.1-1)
    zsync (0.5-1)

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

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Tu peux aussi bêtement chercher le deuxième espace et couper avant ou chercher la parenthèse fermante et couper après.

  6. #6
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    merci pour ta réponse !

  7. #7
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    en fait il me faudrait savoir l'expression régulière qui me permettrait de scinder la sortie suivantes en deux parties.

    Avec uniquement le nom du paquet, puis le numéro de version.

  8. #8
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    c'est bon en fait j'ai trouvé

  9. #9
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    Je n'arrive pas à trouver encore une expression rationnelle.

    Dans le fichier :

    cat /etc/apt/sources.list

    qui affiche

    #
    # /etc/apt/sources.list
    #


    #
    # etch
    #
    deb http://ftp.fr.debian.org/debian/ etch main contrib non-free
    deb-src http://ftp.fr.debian.org/debian/ etch main contrib non-free

    #
    # Security updates
    #
    deb http://security.debian.org/ stable/updates main contrib non-free
    deb-src http://security.debian.org/ stable/updates main contrib non-free
    Il me faudrait une expression qui récupère les chaînes suivantes :

    http://ftp.fr.debian.org/debian/
    http://ftp.fr.debian.org/debian/

    http://security.debian.org/
    http://security.debian.org/

    J'ai besoin d'aide ! ! Merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Points : 90
    Points
    90
    Par défaut
    Salut,

    totalement subjectif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat /etc/apt/sources.list | grep -o "http:.*\..*\/[ ]"
    ce qui donnerait dans ton exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    http://ftp.fr.debian.org/debian/
    http://ftp.fr.debian.org/debian/
    http://security.debian.org/
    http://security.debian.org/
    Si tu veux supprimer les doublons :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat /etc/apt/sources.list | grep -o "http:.*\..*\/[ ]" | uniq
    =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    http://ftp.fr.debian.org/debian/
    http://security.debian.org/

  11. #11
    Futur Membre du Club
    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
    Points : 7
    Points
    7
    Par défaut
    merci pour ta réponse rapide

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

Discussions similaires

  1. [RegEx] Isoler une chaïne par le biais d'une expression régulière
    Par hpl76 dans le forum Langage
    Réponses: 13
    Dernier message: 09/02/2011, 16h48
  2. [RegEx] Besoin d'une expression pour formater une chaîne
    Par Space Cowboy dans le forum Langage
    Réponses: 9
    Dernier message: 17/08/2007, 10h29
  3. Expression régulière pour récupérer une chaîne.
    Par z980x dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/06/2007, 15h01
  4. Réponses: 3
    Dernier message: 07/08/2006, 11h25
  5. Problème pour exécuter une chaîne de caractères
    Par Pongo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h34

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