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

Unix Discussion :

Afficher une chaine de caractère comprise entre 2 autres caractères


Sujet :

Unix

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Afficher une chaine de caractère comprise entre 2 autres caractères
    Bonjour tout le monde,

    Je cherche une commande me permettant d’afficher une chaine de caractères comprise entre 2 autres caractères.

    J’ai par exemple le fichier contenant ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MD5 (/Users/Will/Documents/Scripts/test//test.txt) = 2855b6ee31d3c7afe60aac2df4bc43d1
    MD5 (/Users/Will/Documents/Scripts/test//test3) = 674f836ab878dd9c7cd9994a63817b1b
    MD5 (/Users/Will/Documents/Scripts/test//test4) = 674f836ab878dd9c7cd9994a63817b1b
    Avec AWK j’obtiens cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (/Users/Will/Documents/Scripts/test//test.txt) 2855b6ee31d3c7afe60aac2df4bc43
    (/Users/Will/Documents/Scripts/test//test3) 674f836ab878dd9c7cd9994a63817b1b
    (/Users/Will/Documents/Scripts/test//test4) 674f836ab878dd9c7cd9994a63817b1b
    Je souhaite prendre la chaine de caractères comprise entre le dernier "/" et ")" et la suite, afin d'obtenir ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    test1.txt 2855b6ee31d3c7afe60aac2df4bc43d1
    test3 674f836ab878dd9c7cd9994a63817b1b
    test4 674f836ab878dd9c7cd9994a63817b1b
    Auriez-vous une solution ?
    Merci

  2. #2
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Avec awk:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{gsub(".*/","",$2);gsub(".$","",$2);printf("%s %s\n",$2,$4);}'
    ou avec sed:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/.*\///' -e 's/).*=//'
    ɹǝsn *sıɹɐlos*

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    Novembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2013
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ca fonctionne parfaitement !!!
    Bon maintenant il ne me reste plus qu'à analyser tes commandes pour les comprendre.
    Merci jlliagre

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Bonjour,
    Citation Envoyé par jlliagre Voir le message
    ou avec sed:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/.*\///' -e 's/).*=//'
    Juste pour jouer le pinailleur de service, mais comme dans les 2 "replace" on remplace par la même chose, on pourrait le faire en 1 seul "replace" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/.*\/\|).*=//g'
    Cordialement.

  5. #5
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Ca pourrait en effet être une solution plus compacte si elle n'avait pas le gros défaut de ne pas marcher sur les systèmes Unix utilisant une version de sed conforme aux standards, le \| dans les regexp étant une extension GNU ...
    ɹǝsn *sıɹɐlos*

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 276
    Points : 12 717
    Points
    12 717
    Par défaut
    Ok, parce que j'ai voulu garder ton écriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e 's/.*\/\(.*\)).*=/\1/'
    Cordialement.

  7. #7
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 882
    Points
    7 882
    Par défaut
    Ok, là c'est POSIX. Une notion de plus à comprendre (les back-references) pour WiwiBear ...
    ɹǝsn *sıɹɐlos*

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/07/2013, 23h08
  2. Réponses: 7
    Dernier message: 20/04/2007, 16h42
  3. Réponses: 9
    Dernier message: 19/12/2006, 12h02
  4. [Débutant]Afficher une chaine de caractères
    Par cyrille2k5 dans le forum Oracle
    Réponses: 3
    Dernier message: 02/06/2006, 16h04
  5. afficher une chaine de caractères
    Par felicity dans le forum C
    Réponses: 12
    Dernier message: 21/12/2005, 14h28

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