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 :

Traitement fichier en Shell


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Par défaut Traitement fichier en Shell
    Bonjour,

    Quelqu'un peut-il m'aider pour traiter un fichier en Shell.

    je vous explique le problème. J'ai un fichier en entrée qui n'est autre que la liste des utilisateurs d'un système avec leur mot de passe crypté. Le fichier est structuré de la sorte :
    ----
    [Login1]
    Pass=Mdp_Crypt_1

    [Login2]
    Pass=Mdp_Crypt_2

    [Login3]
    Pass=Mdp_Crypt_3

    etc...
    ----
    Il faut que je traitre ce fichier afin de décrypté les mots de passe. Je pense utilisé le package Open SSL pour y parvenir car les mots de passes sont cryptés selon 3DES.

    Dans un premier temps, afin de m'affranchir de la problématique de parcours du fichier, j'aimerais déjà arriver à créer un fichier ou les mots de passes cryptés sont concaténé à la chaine "bob".

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while read line  
    do   
    	if test ${line} | grep '^[Pass=]' | wc -l;
    	then echo $line"bob"
            else $line
    	fi
    done < nomfichier
    Ce code ne marche pas ...
    Une précision j'utilise Korn Shell.

    Quelqu'un peut-il m'orienter ?

    Merci d'avance

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    'comprend pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read line; do [[ $line == Pass* ]] && echo "${line}bob"; done <tes_logins
    Pass=Mdp_Crypt_1bob
    Pass=Mdp_Crypt_2bob
    Pass=Mdp_Crypt_3bob
    et puis c'est tout, non ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Bonjour,

    'comprend pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while read line; do [[ $line == Pass* ]] && echo "${line}bob"; done <tes_logins
    Pass=Mdp_Crypt_1bob
    Pass=Mdp_Crypt_2bob
    Pass=Mdp_Crypt_3bob
    et puis c'est tout, non ?
    Merci pour la réponse si rapide...

    Ca me va très bien! Et comment mettre tout ça dans un nouveau fichier ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    pourquoi vouloir utiliser un autre fichier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while ...done <tes_logins > nouveauFichier
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre expérimenté Avatar de FRUiT
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 83
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '/Pass/ { print $0"bob" }' fichier_log > fichier_log_2

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Février 2009
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Février 2009
    Messages : 30
    Par défaut
    J'ai besoin d'utiliser un nouveau fichier car je dois reconstruire la liste des utilisateurs mais avec leur mot de passe décryptés.

    Merci FRUIT pour la proposition avec awk. Cette solution ne me convient pas malheureusement car je ne crois pas qu'il soit possible d'utiliser des fonctions de décryptage d'Open SSL dans le coeur du programme.

    Merci N_BAH pour m'avoir grandement aider.
    La syntaxe Shell est vraiment pas évidente.

    Bonne journée !

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

Discussions similaires

  1. [PERL] traitement fichier texte
    Par osiris73 dans le forum Langage
    Réponses: 10
    Dernier message: 05/05/2006, 20h06
  2. Traitement de fichier en shell script
    Par sam.fet dans le forum Linux
    Réponses: 3
    Dernier message: 03/05/2006, 14h30
  3. Optimiser traitement fichier [.txt]
    Par Metallic-84s dans le forum Langage
    Réponses: 14
    Dernier message: 16/03/2006, 13h33
  4. Ouvrir un fichier Word (Shell
    Par priest69 dans le forum VBA Word
    Réponses: 6
    Dernier message: 21/09/2005, 16h53
  5. Modifier chaîne dans fichier en shell
    Par MiKLnet dans le forum Autres langages
    Réponses: 2
    Dernier message: 11/10/2004, 11h31

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