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 :

Ajouter ou mettre à jour des éléments d'un fichier A vers un fichier B


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut Ajouter ou mettre à jour des éléments d'un fichier A vers un fichier B
    Bonjour,

    J'ai le fichier A :

    user1:password:901:100:Prenom Nom:/home/user1:/bin/ksh
    user2:password:902:100:Prenom Nom:/home/user2:/bin/ksh
    user3:password:903:100:Prenom Nom:/home/user3:/bin/ksh
    user4:password:904:100:Prenom Nom:/home/user4:/bin/ksh
    user5:password:905:100:Prenom Nom:/home/user5:/bin/ksh
    Puis un fichier B :

    user6:password:901:100:Prenom Nom:/home/user6:/bin/ksh
    user7:password:902:100:Prenom Nom:/home/user7:/bin/ksh
    user3:password:903:100:Prenom Nom:/home/user3:/bin/ksh
    user9:password:904:100:Prenom Nom:/home/user9:/bin/ksh
    user5:password:905:100:Prenom Nom:/home/user5:/bin/ksh
    J'aimerai à partir du fichier A, mettre à jours les informations du fichier B :

    1. Si une ligne du fichier A n'existe pas dans le fichier B, je l'ajoute à la suite.
    2. Si une ligne du fichier A est différente d'une ligne du fichier B, je mets à jour.

    Sachant que la la clé unique entre les deux fichiers est la 1er colonne (userXX)

    Comment faire cela en bash (avec une base de donnée cela aurai été trop facile :cry:)

    Encore merci d'avance pour vos indications

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 651
    Par défaut
    bonjour,

    c'est tout bête : "yaka" utiliser sort avec les bonnes options (unicité, clé) sur les deux fichiers en même temps, que tu mets dans une substitution de commande, pour en faire un echo redirigé vers le fichier B...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    quand au passage d'une machine a l'autre c'est tres simple tu peux tuiliser "-" pour des accès directs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     echo toto | ssh -l operateur undertaker " cat - > t"
    bien sur tu peux aussi tout simplement faire un scp
    mais attention aux effets de bord au moment de l'ecriture du fichier

  4. #4
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    Merci pour vos réponses, mais... je n'est pas trop compris votre manière de faire

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2007
    Messages : 70
    Par défaut
    Tu peux faire :
    cat fichier1 fichier2 | sort -u | uniq

    Mais parfois quelques doublons restent (je ne saurai pas dire pourquoi)

  6. #6
    Membre éprouvé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Par défaut
    merci pour ta réponse. cela fonctionne bien.

    Cependant,...


    Dans chaque fichier, l'identifiant unique est la 1er colonne (users). Imaginons que l'on change certains paramètres à cette utilisateur. Si j'utilise ta méthode, mon utilisateur sera en double. Le but est de mettre à jour ces paramètres.

    Avec awk, il y a pas moyen de faire cela ?

Discussions similaires

  1. [OL-2007] Mettre à jour des éléments dans un contact
    Par gambi dans le forum Outlook
    Réponses: 0
    Dernier message: 12/01/2013, 13h14
  2. Mettre à jour des tables avec un trigger
    Par Titouf dans le forum Langage SQL
    Réponses: 9
    Dernier message: 20/01/2008, 15h57
  3. [Hibernate] mise à jour des éléments des détails
    Par neuromencien dans le forum Hibernate
    Réponses: 9
    Dernier message: 16/02/2007, 14h47
  4. Mettre à jour des champs dans un sous formulaire
    Par Patros dans le forum Access
    Réponses: 3
    Dernier message: 09/08/2006, 15h16
  5. Mettre à jour des champs suite à un RecordSet
    Par Miss Ti dans le forum Access
    Réponses: 3
    Dernier message: 25/07/2006, 22h43

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