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 :

Extraction de chaine dans un fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut Extraction de chaine dans un fichier
    Bonjour,

    Je souhaite, en ligne de commande Shell :
    - extraire du fichier tous les mots se terminant par '.exe'
    et tous les mots sont compris entre '>' et '<'

    Merci pour votre aide
    bye

  2. #2
    Membre émérite 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
    Par défaut
    Citation Envoyé par Sakapatate
    Bonjour,

    Je souhaite, en ligne de commande Shell :
    - extraire du fichier tous les mots se terminant par '.exe'
    et tous les mots sont compris entre '>' et '<'

    Merci pour votre aide
    bye

    Pas garanti vu que tu ne donnes pas d'exemple du contenu du fichier à analyser

    sed -n -e "/\.exe$/p" -e "/>[^<]*</s/>\([^<]*\)</\1/gp"

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    hello,

    En effet, j'ai pas mis bcp d'info.
    Voici un exemple de chaine de caractère :
    "version >2-1.exe< du 13/02"
    et moi je veux extraire la chaine : 2-1.exe

    Merci pour ton aide...
    bye

  4. #4
    Membre émérite 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
    Par défaut
    Citation Envoyé par Sakapatate
    hello,

    En effet, j'ai pas mis bcp d'info.
    Voici un exemple de chaine de caractère :
    "version >2-1.exe< du 13/02"
    et moi je veux extraire la chaine : 2-1.exe

    Merci pour ton aide...
    bye

    Pour cet exemple, ça marche

    • Une brève introduction aux expressions rationnelles



    echo "version >2-1.exe< du 13/02" | sed -n "s/^.*>\([^<]*\.exe\)<.*$/\1/p"
    2-1.exe

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 90
    Par défaut
    Merci bcp...
    Avec en plus l'aide sur les RE c'est cool.

    Merci
    Bye

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Par défaut
    Bonjour,
    Je pose ma question dans ce topic car il me semble qu'elle y ressemble beaucoup :

    J'arrive à obtenir la liste des fichiers nommés 'url' contenant le texte 'prdownloads.sourceforge.net' dans le répertoire package avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $ find packages/ -iname url | xargs grep prdownloads.sourceforge.net
    packages/strace/url:http://prdownloads.sourceforge.net/strace/strace-4.5.14.tar.bz2
    packages/scummvm/url:http://prdownloads.sourceforge.net/scummvm/scummvm-0.9.1.tar.bz2
    packages/pylirc/url:http://prdownloads.sourceforge.net/pylirc/pylirc-0.0.5.tar.gz
    packages/fuse/url:http://prdownloads.sourceforge.net/fuse/fuse-2.5.3.tar.gz
    packages/zsnes/url:http://prdownloads.sourceforge.net/zsnes/zsnes150src.tar.bz2
    packages/libungif/url:http://prdownloads.sourceforge.net/libungif/libungif-4.1.4.tar.bz2
    packages/lirc/url:http://prdownloads.sourceforge.net/lirc/lirc-0.8.1.tar.bz2
    packages/PyXML/url:http://prdownloads.sourceforge.net/pyxml/PyXML-0.8.4.tar.gz
    packages/imlib2/url:http://prdownloads.sourceforge.net/enlightenment/imlib2-1.3.0.tar.gz
    packages/libupnp/url:http://prdownloads.sourceforge.net/pupnp/libupnp-1.4.1.tar.gz
    packages/freetype/url:http://prdownloads.sourceforge.net/freetype/freetype-2.1.10.tar.bz2
    packages/sysfsutils/url:http://prdownloads.sourceforge.net/linux-diag/sysfsutils-2.0.0.tar.gz
    packages/libexif/url:http://prdownloads.sourceforge.net/libexif/libexif-0.5.12.tar.gz
    Mais j'aimerais dans chaque fichier remplacer 'prdownloads.sourceforge.net' par 'superb-west.dl.sourceforge.net/sourceforge'.
    Je suppose que c'est la commande sed qu'il faudrait utiliser mais je ne sais pas comment ...

  7. #7
    Membre émérite 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
    Par défaut
    Citation Envoyé par faya972
    Mais j'aimerais dans chaque fichier remplacer 'prdownloads.sourceforge.net' par 'superb-west.dl.sourceforge.net/sourceforge'.
    Je suppose que c'est la commande sed qu'il faudrait utiliser mais je ne sais pas comment ...

    Ça doit marcher (en bash), mais à tester sur un fichier au préalable

    find . -iname url | xargs grep -l prdownloads.sourceforge.net | xargs sed -i 's!prdownloads.sourceforge.net!superb-west.dl.sourceforge.net/sourceforge!'

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 77
    Par défaut
    Heu ... étant passé à un autre projet entretemps, je me rends compte maintenant que je ne t'ai pas remercié BlaireauOne (!??).

    Je n'ai pas encore testé mais je ferai savoir si ça fonctionne. Et encore merci.

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

Discussions similaires

  1. [WD14] Extraction de chaine dans un fichier texte
    Par LuckyLuke56 dans le forum WinDev
    Réponses: 3
    Dernier message: 07/10/2011, 09h25
  2. enregistrer une liste chainée dans un fichier?
    Par ALF-Teams dans le forum C
    Réponses: 7
    Dernier message: 08/03/2006, 18h42
  3. Extraction de donnés dans un fichier XML
    Par ANISSS dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 27/01/2006, 13h16
  4. Réponses: 21
    Dernier message: 29/09/2005, 19h33
  5. [Stratégie]Sauvegarde d'une liste chainée dans un fichier
    Par BernardT dans le forum Général Java
    Réponses: 17
    Dernier message: 25/07/2005, 17h04

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