В Unix, как я могу передать вывод who в команду groups? - PullRequest
1 голос
/ 07 октября 2010

Я пытаюсь сделать что-то вроде этого:

Допустим, на компьютере UNIX вошли 4 пользователя: a, b, c и d.

Теперь, чтобы получить группы, к которым принадлежат эти парни, я должен напечатать:

groups a b c d.

Что мне интересно, так это если есть способ сделать что-то вроде who | groups, где я могу направить пользователей, которые в данный момент вошли в систему, в команду groups, которая затем распечатает всех пользователей, которых предоставили вместе с информацией о группе. , Однако, похоже, что это работает не так, как задумано - скорее, приведенная выше команда просто дает группе, к которой принадлежит первый пользователь.

Ответы [ 4 ]

2 голосов
/ 07 октября 2010

В bash, zsh и других:

groups $(who | cut -d' ' -f 1)
1 голос
/ 07 октября 2010

Хотя я не проверял это:

who -q | xargs -o groups

Но вы должны быть в состоянии использовать xargs для этого

0 голосов
/ 07 октября 2010
who | while read -r user line; do echo "$user $line" -- `groups $user`; done

Будет выведена команда who с группами на стороне

0 голосов
/ 07 октября 2010
groups $(who -q)|head -n -1
...