Grep | piping

Résolu/Fermé
zulul Messages postés 22 Date d'inscription samedi 29 janvier 2005 Statut Membre Dernière intervention 4 juin 2007 - 29 janv. 2005 à 04:56
 zulul - 29 janv. 2005 à 18:11
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 :)

3 réponses

Ravachol Messages postés 560 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120
29 janv. 2005 à 10:33
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
29 janv. 2005 à 10:50
Argggggggggggggggg trop tard !!!
Ça m'apprendra à ne pas rafraîchir avant de poster ;-))
0
Ravachol Messages postés 560 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005 120 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
29 janv. 2005 à 11:33
Salut,
Deux réponses valent mieux qu'une. C'est bien de pouvoir choisir ;-)

A++
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895 > Ravachol Messages postés 560 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 30 octobre 2005
29 janv. 2005 à 11:55
C'est clair et le pingouin est là pour ça ;-)))
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
29 janv. 2005 à 10:48
Salut,

Tiens essaie ça :
grep $1 /etc/passwd | cut -d: -f4 | xargs -i{} grep {}  /etc/group | cut -d: -f1
Ça devrait le faire ;-))
0
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