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

Administration système Discussion :

Recherche une chaine de façon recursive dans tout les fichiers d'un serveur.


Sujet :

Administration système

  1. #1
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut Recherche une chaine de façon recursive dans tout les fichiers d'un serveur.
    Bonjour,

    bon mon petit soucis :

    J'aimerais faire une sorte de commande qui :
    - cherche un fichier défini (dans mon cas ce sera "*0627*")
    =>Qui cherche dans chaque fichier de cette recherche une chaine "toto" et me retourne les 6 caractéres suivant.

    je pense qu'en combinant les commandes find et grep je peux trouver mon bonheur mais j'ai plus trop l'habitude d'utiliser les commandes linux...

    en gros j'aimerais qu'au final ça fasse un truc du genre :
    >$ commande "toto"
    >"123456"

    vous voyez ce que je veux dire ?

    Sinon si personne n'a la réponse y aurait t'il un site sur lequel je peux m'amélioré sur ce genre de commande ?
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 149
    Points : 28 116
    Points
    28 116
    Par défaut
    Bonjour,

    Citation Envoyé par ben_ghost Voir le message
    J'aimerais faire une sorte de commande qui :
    - cherche un fichier défini (dans mon cas ce sera "*0627*")
    =>Qui cherche dans chaque fichier de cette recherche une chaine "toto" et me retourne les 6 caractéres suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    find / -type f -name "*627*" -exec grep toto {} \;
    reste ensuite a ne retourner que les 6 caracteres suivants toto. Je te conseille de regarder du cote de awk.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre actif
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2006
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2006
    Messages : 240
    Points : 275
    Points
    275
    Par défaut
    J'ai trouver une commande équivalente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find / -name *KSYK0627* | xargs grep "N°" | cut -c86-
    Ceci dit vu que je voulais cette commande pour faciliter la vie a certains homologateur j'ai finallement opter pour un script, le hic c'est que j'ai un message d'erreur si celui-ci est introuvable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/ksh
     
    if [ $# = 0 ] || [ "$1" = '-h' ] ; then
            echo \* \*
            echo \* \* Recherche d'un mot de passe d un client
            echo \* \*
            exit 1
    else
     while [ $# -gt 0 ]; do
      variable=""
      variable=$(find / -name "*KSYK0627*" | xargs grep $1 | cut -c86-)
      if [ $variable = "" ] ; then
       echo " client $1 : Non trouver";
      else
       echo " client $1 : $variable";
      fi
      shift 1;
     done
    fi
    apparement c'est la ligne avec
    if [ $variable = "" ] ; then
    qu'il n'aime pas ...

    quelqu'un sait pourquoi ?
    J'suis loin d'être un expert, seulement un passionné.
    L'humanité de l'homme ne reside que dans son intelligence. Certains l'on compris. D'autres ne le comprendront jamais... (Histrat)

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juillet 2009
    Messages : 14
    Points : 21
    Points
    21
    Par défaut
    Bonjour,

    À l'expansion de ta variable $variable, et lorsqu'elle est vide, la commande exécutée par le shell est
    Ce qui est invalide. Il faut placer ta variable entre guillemets :
    Et ce pour qu'au cas où la variable est vide, le résultat soit :
    Note que tu peux utiliser [ -z "$variable" ] aussi.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 06/08/2014, 22h05
  2. Réponses: 2
    Dernier message: 03/08/2014, 12h35
  3. Réponses: 8
    Dernier message: 10/01/2012, 16h44
  4. [vbexcel]Rechercher une chaine dans une autre chaine...
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 12/12/2005, 13h49
  5. Comment rechercher une chaine dans plusieurs tables ?
    Par tsing dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/11/2005, 18h04

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