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

Linux Discussion :

comment éviter les doublons en shell ?


Sujet :

Linux

  1. #1
    Membre du Club
    comment éviter les doublons en shell ?
    je copie 2 lignes et les stock dans fichier nommé password
    dans les 2 lignes copiées, il y a des info redondantes
    ex ligne 1 : toto:100:reseau
    ex ligne 2 : 100:A:reseau:/home/ etc ..

    donc dans le fichier password il y aura les 2 lignes copiées avec 100 et reseau en doublons

    comment les enlever , je ne trouve pas

    je ne peux pas des le debut choisir les données qui m'intéresse afin d'éviter les doublons ( avec grep cut etc ..) car les 2 fichiers ou je dois récolter les infos param_user et param_carac ont des lignes qui ne sont pas écrites de la meme facon du début jusqu'à la fin sauf pour param_user

    exemple pour param_user ce sera tout le tps la meme chose :
    login : id : service ==> toto:500:reseau
    tata:666:admin

    pour param_carac c'est dans le désordre par rapport au colonne
    500:A:reseau:
    458:B:dev:
    admin:A:
    etude:C:
    reseau :B


    connaissez vous une ligne de commande a rajouter dans mon prog pour qu'il copie 2 lignes ( prisent dans 2 fichiers) et les renvoies dans un fichier nommé passwd mais sans les doublons.

    echo "$ligne1:$ligne2" >>passwd //mais sans doublon

    merci de votre aide

  2. #2
    Membre averti
    J'espère que tu ne fais pas ce script pour ajouter/modifier /etc/passwd sachant que d'une part c'est /etc/shadows qui est utilisé maintenant et que d'autre part cette "technique" d'édition n'est pas propre.

    Sinon je n'ai pas vraiment compris le format des deux fichiers et ce qu'ils contiennent respectivement (à part des utilisateurs unix).

  3. #3
    Membre du Club
    non je ne vais pas ecrire dans /etc/passwd, il s'agit d'un exercice de création de script lié à la gestion des users. C'est pour comprendre et faire des scripts.
    je test mon programme sur une machine test ou j'ai installé redhat 5

    les 2 fichiers param_user et param_carac sont juste des fichiers plats qui contiennent des donnée de user entrées manuellement.

    param_user contient des données unique de chaque user {id:login:service}
    param_carac contient des données communes aux user

    les 2 lignes copiées sont envoyés dans un fichier que j'ai crée, nommé passwd

    pouvez répondre a ma question
    Merci

  4. #4
    Expert éminent sénior
    Citation Envoyé par monsieur77 Voir le message
    je ne peux pas des le debut choisir les données qui m'intéresse afin d'éviter les doublons ( avec grep cut etc ..) car les 2 fichiers ou je dois récolter les infos param_user et param_carac ont des lignes qui ne sont pas écrites de la meme facon du début jusqu'à la fin sauf pour param_user

    exemple pour param_user ce sera tout le tps la meme chose :
    login : id : service ==> toto:500:reseau
    tata:666:admin

    pour param_carac c'est dans le désordre par rapport au colonne
    500:A:reseau:
    458:B:dev:
    admin:A:
    etude:C:
    reseau :B
    Tu veux dire que le fichier "param_carac" n'est pas au même format à chaque ligne ? Certaines lignes contiennent 3 champs et d'autres 2 champs ???

    A partir de "toto", tu récupères "toto:500:reseau" puis tu en extraits "500" ok.
    A partir de "500" tu récupères "500:A:reseau:". Et que fais-tu ensuite ??? A quoi servent les 3 lignes "admin:A:" et "etude:C:" et "reseau:B" ???
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site