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

Linux Discussion :

Extraction d'une sous-chaine


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Extraction d'une sous-chaine
    Bonjour ;

    J'ai fait un script shell qui extrait mes pièces jointes d'un email via ripmime et j'obtien dans une variable $resultat ceci :
    Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/html filename=textfile1 Decoding content-type=application/pdf filename=test.pdf Decoding content-type=application/pdf filename=Copie de test.pdf
    Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/plain filename=textfile1 Decoding content-type=text/html filename=textfile2 Decoding content-type=application/pdf filename=Copie de test.pdf

    J'aimerai récupérer la valuer du dernier filename sans le .pdf c'est à dire le nom du fichier sans l'extension.

    J'essaye avec sed mais j'arrive pas à écrire le pattern.

    Est-ce que quelq'un pourrait m'aider ?

    Merci ;

    Aymeric

  2. #2
    Membre habitué Avatar de apokrif
    Inscrit en
    Novembre 2006
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 120
    Points : 192
    Points
    192
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sed -e 's/^.*filename=\(.*\)\.pdf/\1/'
    semble marcher, mais comme il a deux lignes presque identiques en entrée il donne deux fois le même résultat (si vous voulez bien le dernier nom, càd "Copie de test"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    bash$ echo 'application/pdf filename=Copie de test.pdf'|sed -e 's/^.*filename=\(.*\)\.pdf/\1/'<<EOF
    > Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/html filename=textfile1 Decoding content-type=application/pdf filename=test.pdf Decoding content-type=application/pdf filename=Copie de test.pdf
    > Decoding content-type=multipart/mixed filename=textfile0 Decoding content-type=text/plain filename=textfile1 Decoding content-type=text/html filename=textfile2 Decoding content-type=application/pdf filename=Copie de test.pdf
    > EOF
    Copie de test
    Copie de test
    En outre ça ne marche pas si pour une raison obscure le nom du fichier commence par "filename=".

    Par ailleurs, on peut faire des substitutions de chaîne directement avec le shell (en tout cas dans Bash).

  3. #3
    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
    Solution 1 :
    sed -n -e '$s/^.*=//' -e 's/.pdf$//p'

    Solution 2 :
    sed -n '$s/^.*=\(.*\)\.pdf$/\1/p'

    -n : mode 'silent', supprime l'affichage automatique des 'pattern'
    $ : dernière ligne
    p : print, déclenche l'impression du 'pattern'

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/05/2008, 23h15
  2. Extraction d'une sous-chaine de caractère
    Par ninsekh dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 22/04/2008, 08h13
  3. [Bash] : extraction d'une sous chaine
    Par julio_097 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 14/08/2007, 19h33
  4. Extraction d'une sous-chaine à partir d'une chaine principale
    Par gazere dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/06/2007, 04h08
  5. [RegEx] extraction d'une sous chaine
    Par zulkifli dans le forum Langage
    Réponses: 2
    Dernier message: 24/03/2006, 13h27

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