Posez votre question Signaler

Grep | piping [Résolu]

zulul 22Messages postés 29 janvier 2005Date d'inscription - Dernière réponse le 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 :)
Lire la suite 

Grep | piping »

6 réponses
Réponse
+0
moins plus
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++
jipicy - 29 janv. 2005 à 10:50
Argggggggggggggggg trop tard !!!
Ça m'apprendra à ne pas rafraîchir avant de poster ;-))
Ravachol - 29 janv. 2005 à 11:33
Salut,
Deux réponses valent mieux qu'une. C'est bien de pouvoir choisir ;-)

A++
jipicy - 29 janv. 2005 à 11:55
C'est clair et le pingouin est là pour ça ;-)))
Ajouter un commentaire
Réponse
+0
moins plus
Salut,

Tiens essaie ça :
grep $1 /etc/passwd | cut -d: -f4 | xargs -i{} grep {}  /etc/group | cut -d: -f1
Ça devrait le faire ;-))
Ajouter un commentaire
Réponse
+0
moins plus
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 ...
Ajouter un commentaire
Ce document intitulé « grep | piping » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook