Задание
Определить количество пользователей из группы.
В качестве примера
Определить общее количество студенческих групп.
Решение:
ls -ld ../* | Команды выполняются из домашнего каталога пользователя - /home/имя_пользователя, а информацию о созданных для групп каталогах можно получить из каталога /home/, который может адресоваться из текущего каталога как: ../. Выводим информацию о содержимом этого каталога. Опция -l указывается, чтобы получить полную информацию, включая группу, опция -d предотвращает обход подкаталогов. Печать команды ls перенаправляется в поток.
grep "^d.\{24\}ap" | Признак подкаталога - буква "-d" в первой позиции выдачи команды ls, а имена групп начинаются c 25-й позиции выдачи. Команде grep задается шаблон, который определяет признак каталога в 1-й позиции и имя группы, начинающееся с букв "ap".
sed -n 's/[ ]\{2,\}/ /gp' | Поскольку дальше потребуется выделять поля, избавимся от множественных пробелов с помощью команды sed.
cut -f4 -d ' ' | Выделяется 4-е поле, содержащее имя группы.
sort |Результат сортируется, это понадобится для следующей команды. Поскольку сейчас в тексте остался только один столбец, никаких опций для сортировки мы не указываем.
uniq | Одна и та же группа повторяется для многих каталогов, поэтому следует избавиться от повторяющихся строк.
wc -l Команда wc подсчитывает число оставшихся строк, результат выводится на печать.