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 :

bash sed question


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut bash sed question
    Bonjour,

    J'ai créé un script bash qui requête avec ldapsearch. Je cherche à coloriser une partie du résultat. J'ai donc déclaré une expression à trouver, il trouve cette expression, mais lorsque avec sed je lui demande de le coloriser il affiche l'expression recherchée sous sa forme de variable dans la couleur demandée et non le résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ou=$(echo -e "ou=.*groups")
    oucol=$(echo -e $yel$ou$norm)
     
    echo -e "\n$content" | sed -e "s/$ou/$oucol/g"
    Du coup ca affiche "ou=.*groups" colorisé par pas la valeur.

    J'ai cherché, je suis sur qu'en 2 secondes vous allez trouver, merci d'avance.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    En fait, c'est peut-être ça que tu veux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "\n$content" | sed -e "s/\(${ou}\)/${yel}\1${norm}/g"
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut
    Bonjour,
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ var="b c d
    b a c d
    baaab"
    $ v="a"
    $ r=z${v}z
    $ echo "${var//$v/$r}"
    b c d
    b zaz c d
    bzazzazzazb
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  4. #4
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut
    Merci pour vos réponses, je pourrais tester lundi ($1 a déjà été utilisé avant en paramètre de la commande)

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut
    $1 a déjà été utilisé avant en paramètre de la commande
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    En fait je voulais dire que j'ai ça en début : if [ -z $1 ], c'est le nom de groupe que je cherche dans ldap et que j'écris après le nom de mon script.
    Alors je pensais que ça pouvais interférer.

  7. #7
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $ v="a"
    $ r=z${v}z
    $ echo "${var//$v/$r}"
    Ca marche aussi, merci.

  8. #8
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut --color=auto
    Il y a une chose dommage c'est que quand je saisie ma requête directement dans la console bash la colorisation de la chaîne recherchés se fait automatiquement, pas en sortie du script, et même si je rajoute --color=auto dans le script en fin du $content , vous auriez une idée du pourquoi? C'est plein de subtilités la console!

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 657
    Par défaut

    mais de quoi tu parles ?

    tu demandes au shell de dire au terminal de mettre de la couleur : la couleur est affichée !
    il n'existe pas d'option --color pour toutes les commandes.
    et tu pourrais avoir un fichier --color, ls ne coloriserais pas pour autant sa sortie.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Membre confirmé Avatar de gadj0dil0
    Profil pro
    Support technique
    Inscrit en
    Février 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Support technique

    Informations forums :
    Inscription : Février 2007
    Messages : 133
    Par défaut
    Citation Envoyé par al1_24 Voir le message
    En fait, c'est peut-être ça que tu veux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo -e "\n$content" | sed -e "s/\(${ou}\)/${yel}\1${norm}/g"
    Merci c'est l'expression entre parenthèse et le \1 qui ont résolu le pb et aussi que j'ai changé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    yel="\033[33m" en yel=$(echo -e "\033[33m")
    Je ne sais pas comment j'aurais fait pour trouver.
    Je ne passe pas tout de suite en résolu, une ou deux choses à vérifier avant

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

Discussions similaires

  1. Variable persistante (bash, sed)
    Par fransoo dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 19/02/2017, 21h53
  2. Réponses: 0
    Dernier message: 05/06/2014, 12h03
  3. script bash SED
    Par alex_2009 dans le forum Linux
    Réponses: 5
    Dernier message: 22/06/2009, 04h22
  4. Poser une question en bash ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 04/10/2005, 14h02
  5. Script bash : Pb avec sed
    Par fred64 dans le forum Linux
    Réponses: 3
    Dernier message: 19/08/2005, 11h24

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