Это пахнет домашней работой, ну да ладно
#!/bin/bash
users=$(users | xargs -n1 | sort -u)
for u in $users; do
w -h | awk '{print $1 " " $3}' | grep -m1 $u
done
Объяснение:
Сначала мы создаем список зарегистрированных пользователей с помощью команды "пользователь" и отфильтровываем дубликаты, помещая по одному в каждую строку (xargs -n) и сортируя с фильтрами unique (sort -u).
w -h печатает список всех вошедших в систему пользователей, мы пропускаем через awk только нужные поля (1 и 3), передавая результаты через grep для фильтрации всех, кроме пользователя, которого мы ищем на каждой итерации цикла. -m1 гарантирует, что он остановится после первого матча, вместо этого вы можете передать через 'голову -1'.