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 :

Transformation mot2 si chaine trouvée dans mot1


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut Transformation mot2 si chaine trouvée dans mot1
    Bonjour,

    J'ai dans un fichier pour chaque ligne :
    mot1=mot2

    Je voudrais pouvoir transformer mot2 par ****** si jamais se trouve "pwd" à l'intérieur de mot1.

    J'ai pensé utiliser awk mais je ne vois pas comment m'en sortir avec le grep sur le mot1...
    Une idée ?

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 361
    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 361
    Par défaut
    Bonjour,

    Tu peux essayer avec sed :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e '/^[^=]*pwd/s/=.*/=******/' ton_fichier
    Ensuite tu as l'option -i (ou -i.bak pour sauver l'original) qui permet de modifier directement le fichier.

  3. #3
    Membre confirmé
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    Merci ça marche !

    Par contre, je suis surpris de voir que l'on peut mettre du code avant s/=.*/=******/

    C'est une condition (sous forme d'expression régulière) pour faire le sed qui suit ?
    On a : sed -e '/condition/s/valeurAremplacer/valeurDeRemplacement/' mon_fichier ? C'est ça ?

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 361
    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 361
    Par défaut
    Oui, c'est à peu près ça.
    En fait sous sed, pour la plupart des commandes, tu peux borner leur adressage, soit en disant de faire de telle ligne à telle ligne, soit à partir de telle ligne ou jusqu'à telle ligne, ou bien toutes les n ligne à partir de telle ligne. et ici une ligne est soit défini par son numéro, soit par son contexte (comme ici).

    Pour plus d'informations sur le sujet, tu peux regarder le manuel de sed ( man sed ).

  5. #5
    Membre confirmé
    Profil pro
    Élève
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Élève

    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    Merci pour ta réponse, c'est plus clair

    Très bonne journée.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/05/2013, 22h18
  2. Réponses: 8
    Dernier message: 12/07/2010, 13h27
  3. [MySQL] Ne conserver qu'une occurrence d'une chaine trouvée dans une table
    Par ykseb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/10/2009, 09h31
  4. Tester si un mot se trouve dans un chaine de caractére
    Par koKoTis dans le forum VBScript
    Réponses: 6
    Dernier message: 14/01/2008, 20h23
  5. Afficher une image JPG qui se trouve dans une bdd
    Par Harry dans le forum Bases de données
    Réponses: 6
    Dernier message: 27/02/2004, 10h51

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