• [^] # Re: Quelques idées, comme ça, en passant....

    Posté par . En réponse au message Remplacer des lignes dans un fichier. Évalué à 2.

    Ben....
    Pour commencer, tu as les utilitaires "classiques" pour régler tes problèmes de lignes en double exemplaires. En combinant sort et uniq, tu peux arriver à tes fins.
    Jettes un oeil aux pages de man, mais il me semble que ce n'est pas trop compliqué....
    Allez, juste parce que tu m'as remercié pour mon intervention (ce qui est quand même un peu rare ici !), quelques indices :
    Pour sort, les options utiles sont les suivantes (dans ton cas) :
    -k (ou --key) pour préciser que quel champ trier
    -t (ou --field-separator) pour indiquer le séparateur de champ.
    L'idée, c'est que comme les utilisateurs sont triés d'origine par uid, il faut faire de même lors de la concaténation.
    De plus, la description de sort indique : "Write sorted concatenation of all FILE(s) to standard output", donc en clair, cette commande devrait suffire (à adapter à ta configuration quand même) :
    sort -k 1 -t : /home/userchrooté1/etc/shadow /home/userchrooté2/etc/shadow ... | uniq > /etc/shadow
    Attention
    Ne tapes surtout pas cette commande sans avoir fait des tests avant.
    Je ne suis pas certain que l'ordre des utilisateurs dans le fichier shadow soit important, mais bon.... Il y aura sûrement quelqu'un qui lira ces lignes et qui confirmera/informera mes dires....
    Voilà, en epérant que ça aidrea, comme on dit.
    P.S. : désolé pour cette réponse tardive, mais les vacances n'aident pas à rester informé !