Grep | piping

Résolu
zulul Messages postés 22 Date d'inscription   Statut Membre -  
 zulul -
Bonjour,

je suis débutant dans le shell et je me casse la tête pour recuperer un resultat dans le pipe suivant, mettant un point d'honneur à tout fiche en une seule ligne...

Il faut recuperer le gid du /etc/passwd correspondant à $1 pour ensuite faire un grep avec le resultat sur /etc/group et prendre le champ 1

passwd -> login:pwd:uid:gid:cmt:homedir:shell
group -> group::gid:

# echo -en `grep $1 passwd|cut -d: -f4|grep (?) group|cut -d: -f1`

? on met quoi à la place de (?) pour prende le resultat du tube précédent ?

Toute aide sera la bienvenue :)
Configuration: un peu de tout

3 réponses

  1. Ravachol Messages postés 568 Statut Membre 120
     
    Salut,
    Avec la substitution de commande peut-être, comme ceci:
    grp=$(cat /etc/passwd| grep $1|cut -d: -f4);grep $grp /etc/group|cut -d: -f1
    


    A++
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Argggggggggggggggg trop tard !!!
      Ça m'apprendra à ne pas rafraîchir avant de poster ;-))
      0
      1. Ravachol Messages postés 568 Statut Membre 120 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Salut,
        Deux réponses valent mieux qu'une. C'est bien de pouvoir choisir ;-)

        A++
        0
      2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > Ravachol Messages postés 568 Statut Membre
         
        C'est clair et le pingouin est là pour ça ;-)))
        0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Tiens essaie ça :
    grep $1 /etc/passwd | cut -d: -f4 | xargs -i{} grep {}  /etc/group | cut -d: -f1
    Ça devrait le faire ;-))
    0
  3. zulul
     
    yeaah merci bien

    j'ai pour ma par trouvé une solution moins élégante mais qui fonctionne...

    echo ´grep $1 passwd|cut -d: -f4>read a|grep $a group|cut -d: f1´

    :) a la prochaine ...
    0