Rechercher : dans
Par :

Grep | piping

Dernière réponse le 29 jan 2005 à 18:11:28 zulul, le 29 jan 2005 à 04:56:59 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « grep | piping » dans :
Pipe / Barre verticale sous Mac VoirPour saisir le caractère pipe (|) sous Mac OS, il suffit de saisir la combinaison de touches clavier suivante : Alt + Maj + L
[Commande] “grep” récursif VoirLorsque l'option -r (ou -d recurse) de la commande grep n'est pas disponible, comme sous HP-UX, il faut l'utiliser conjointement avec la commande find. Par exemple, pour chercher récursivement la chaîne «CCM» dans tous les fichiers réguliers à...
Télécharger Color Cop VoirColor Cop permet de sélectionner une couleur directement à écran avec une pipette et de l'afficher dans un visualisateur avec son code RGB (RVB). Il est possible d'utiliser une loupe pour une meilleure sélection. Ce logiciel est notamment très...
Télécharger Pipop VoirPipop est une application de messagerie et de conversation fonctionnant sur un réseau local, donc pas besoin de connexion Internet. Une fois installées, cliquer sur Nouveau sur l'icône installée dans la barre de tâches. Sélectionnez le destinataire...

1

Ravachol, le 29 jan 2005 à 10:33:17

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++ C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)

Répondre à Ravachol

3

jipicy, le 29 jan 2005 à 10:50:31

Argggggggggggggggg trop tard !!!
Ça m'apprendra à ne pas rafraîchir avant de poster ;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Microsoft ce n'est pas la réponse, Microsoft c'est la question et la réponse est : NON ! 

Répondre à jipicy

4

Ravachol, le 29 jan 2005 à 11:33:41

Salut,
Deux réponses valent mieux qu'une. C'est bien de pouvoir choisir ;-)

A++ C'est pas parce qu'ils sont nombreux à avoir tort
qu'ils ont raison! (COLUCHE)

Répondre à Ravachol

5

jipicy, le 29 jan 2005 à 11:55:21

C'est clair et le pingouin est là pour ça ;-))) Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Dans la vie on est toujours pauvre de savoir.

Répondre à jipicy

2

jipicy, le 29 jan 2005 à 10:48:25

Salut,

Tiens essaie ça :

grep $1 /etc/passwd | cut -d: -f4 | xargs -i{} grep {}  /etc/group | cut -d: -f1
Ça devrait le faire ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Linux ? Il y a moins bien, mais c'est plus cher...... 

Répondre à jipicy

6

 zulul, le 29 jan 2005 à 18:11:28

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 ...

Répondre à zulul