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 :

Recherche et affiche selon fichier texte


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut Recherche et affiche selon fichier texte
    Bonjour tous,

    Dans le cadre de remplacement du mot de passe inscrit en dur dans les fichiers de conf, j' ai dressé une liste dans un fichier texte de toutes mes variables. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    password": "admin"
    <Password">admin</Parameter>
    <AdminPassword>admin</AdminPassword>
    "password":"admin"
    password=admin
    Par la suite, je souhaiterai par conséquent rechercher sur l'ensemble des fichiers le mot "admin" mais en s'appuyant sur le fichier contenant toutes les variables. Si cette recherche trouve le mot admin dans une variable existante dans mon fichier de rencensement, alors il n'affiche pas le résultat.


    Espérant que j'ai pu me faire comprendre

    A plus tard

    Tof

  2. #2
    Invité
    Invité(e)
    Par défaut
    Espérant que j'ai pu me faire comprendre
    pas du tout :/

    « en s'appuyant sur le fichier contenant toutes les variables » # "toutes les variables" ? tu veux dire toutes les expressions.
    « rechercher sur l'ensemble des fichiers le mot "admin" »
    « Si cette recherche trouve le mot admin dans une variable existante dans mon fichier [...] » # là, tu m'as perdu.

    ça irait pas mieux si tu mettais les choses dans l'ordre de leur exécution, illustrées par un/des exemple(s) ?

  3. #3
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut
    Bien, je vois tout de meme que tu as réussi à en comprendre une partie Alors effectivement, je corrige un peu mes écrits :

    Dans le cadre de remplacement du mot de passe inscrit en dur dans les fichiers de conf, j' ai dressé une liste dans un fichier texte de toutes les expressions que j'ai pu trouver concernant le mot de passe inscrit dans les fichiers. Voici quelques exemples trouvés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    password": "admin"
    <Password">admin</Parameter>
    <AdminPassword>admin</AdminPassword>
    "password":"admin"
    password=admin
    Pour valider que je n'en ai pas oublié d'expressions lors de mes recherches personnelles, Voici l'idée que j'ai :

    1. Dans un fichier texte nommé expressions.txt, je mets l'ensemble des expressions trouvés personnellement
    2. Je voudrais effectuer une recherche dans l'ensemble des fichiers en excluant lors de la recherche les expressions qui sont dans mon fichier expressions.txt

    Je joins à ce post un fichier contenant quelques expressions contenant le mot de passe admin.

    app-manager.xml

    A plus tard

    Tof

  4. #4
    Invité
    Invité(e)
    Par défaut
    pas sûr d'avoir tout compris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -rL -f tonFichierMotifs "$repertoire2Depart"
    en passant, t'es sûr de cette ligne :<Password">admin</Parameter> ?

  5. #5
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    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 444
    Par défaut
    En fait, je pense que c'est un peu plus compliqué comme besoin:
    Pour tout fichier où l'on trouve sur la même ligne password et admin (ou juste admin ??? ) sans tenir compte à priori de la casse (???) et que cette ligne ne correspond pas à l'un des cas contenus dans sont fichier d' expressions, alors afficher le nom du fichier (et pourquoi pas les lignes concernées).

  6. #6
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut
    Je suis en train de monter mon script

    Par contre, j'ai un souci pour modifier une variable par le mot de passe que j'ai choisi. Pour notre exemple ici : TOTO

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ${dir_wso2iot} -type f -exec sed -i "s/<Password>${admin.password}<\/Password>/<Password>TOTO<\/Password>/g" {} \;
    J'ai essayé avec de mettre ${admin.password} entre " " ou alors ' ' mais en vain. Une idée ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    ${admin.password} ce nom de variable n'est pas valide.

  8. #8
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ${admin.password} ce nom de variable n'est pas valide.
    OK alors comment je peux le remplacer car avec ma ligne de commande, je n'y arrive pas.

  9. #9
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par Tofdu31 Voir le message
    OK alors comment je peux le remplacer car avec ma ligne de commande, je n'y arrive pas.
    je pas rien compris???

    Le nom admin.password n'est pas accepté par bash (et pas mal d'autres shells (probablement tous)) comme nom de variable car il contient un caractère interdit, le point .. En revanche, voici des propositions de noms de variable acceptés par le shell:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    adminpassword
    admin_password
    AdminPassword
    etc.

  10. #10
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut
    Re tous,

    Alors pour que ça soit mieux compris, voici le fichier : api-manager.xml
    Dans ce fichier fourni, on y trouve cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Password>${admin.password}</Password>
    Je souhaiterai à l'aide d'une ligne de commande chercher et remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Password>${admin.password}</Password>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Password>TOTO</Password>
    Merci pour votre aide

  11. #11
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    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 444
    Par défaut
    Je ne vois pas le rapport avec le sujet initial...

    Si tu répondais déjà aux questions que l'on pose car là, on a l'impression d'être dans un dialogue de sourd.

  12. #12
    Membre confirmé Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Par défaut
    C'est répondu justement, je fourni le fichier...

    Rappel de ma demande d'aide :

    Citation Envoyé par Tofdu31 Voir le message
    Dans le cadre de remplacement du mot de passe inscrit en dur dans les fichiers de conf, j' ai dressé une liste dans un fichier texte de toutes les expressions que j'ai pu trouver concernant le mot de passe inscrit dans les fichiers. Voici quelques exemples trouvés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    password": "admin"
    <Password">admin</Parameter>
    <AdminPassword>admin</AdminPassword>
    "password:"admin"
    password=admin
    Pour valider que je n'en ai pas oublié d'expressions lors de mes recherches personnelles, Voici l'idée que j'ai :

    1. Dans un fichier texte nommé expressions.txt, je mets l'ensemble des expressions trouvés personnellement
    2. Je voudrais effectuer une recherche dans l'ensemble des fichiers en excluant lors de la recherche les expressions qui sont dans mon fichier expressions.txt

    Je joins à ce post un fichier contenant quelques expressions contenant le mot de passe admin.

    app-manager.xml

    A plus tard

    Tof

  13. #13
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 444
    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 444
    Par défaut
    Et on t'a tous répondu que l'on a pas tout compris dans ton besoin.
    Pour information, la solution de N_BaH (post #4) couvre exclusivement le besoin tel que tu le demandes mais celui-ci n'est pas complet:

    Comment doit-on traiter le cas ou un fichier contient une autre forme de couple password/admin que contenu dans ton fichier d'expression mais qui contient aussi une de ces expressions ?

    D'ailleurs, on ne sait même pas si la solution de N_BaH te convient...

  14. #14
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Par défaut
    Citation Envoyé par Tofdu31 Voir le message
    Je suis en train de monter mon script
    Par contre, j'ai un souci pour modifier une variable par le mot de passe que j'ai choisi. Pour notre exemple ici : TOTO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ${dir_wso2iot} -type f -exec sed -i "s/<Password>${admin.password}<\/Password>/<Password>TOTO<\/Password>/g" {} \;
    J'ai essayé avec de mettre ${admin.password} entre " " ou alors ' ' mais en vain. Une idée ?
    Tu pourrais envisager de découper ton problème en sous problème pour essayer de comprendre ce qui se passe, plutôt que vouloir une solution toute faite.
    pourquoi interfacer avec find et rajouter de la complexité si ton sed ne fonctionne pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo bla | sed 's/bla/aze/g' 
    aze
    c'est comme ça qu'on teste

    Du coup tu pourrais comprendre que les $ ont besoin d'être échappé sous peine d'être interprété et de casser ta regexp. Quelle est la différence entre un string entre ' et entre " ? ça t'aiderait. Peut être qu'il y a d'autre caractères à échaper ? accolades ? c'est dommage parce qu'une variable à pas besoin d'accolades pour être interprétée. Tu m'as l'air d'avoir compliqué ton problème pour rien.

    Du coup si j'ai compris, tu veux revenir en arrière parce que tu as pété ton fichier et donc tu changes ta demande au fil du thread ? Faudrait peut être envisager d'avoir une méthodologie.
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par Tofdu31 Voir le message
    Je souhaiterai à l'aide d'une ligne de commande chercher et remplacer
    <Password>${admin.password}</Password> par <Password>TOTO</Password>.
    Chez moi, ça marche sans problème avec un petit coup de sed:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo '<Password>${admin.password}</Password>' | sed -e 's|<Password>${admin.password}</Password>|<Password>TOTO</Password>|g'
    <Password>TOTO</Password>

Discussions similaires

  1. Réponses: 14
    Dernier message: 13/09/2007, 13h26
  2. comment afficher un fichier text sur un dbgrid
    Par nessing dans le forum C++Builder
    Réponses: 5
    Dernier message: 12/05/2007, 17h42
  3. Afficher un fichier texte qu'on vient de créer ?
    Par uranium-design dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 11/04/2007, 16h22
  4. Réponses: 4
    Dernier message: 15/03/2007, 12h13
  5. afficher un fichier texte
    Par transistor49 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 06/01/2006, 15h24

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