Сценарий, который у меня есть, выводит $ 1 наиболее часто регистрируемых пользователей за последние $ 2 дня
#var[$i]=$(awk -F: '{print $5}' /etc/passwd);
last -s -$2days | awk '{users[$1]++} END{for(i in users){print users[i], i}}' | sort -r | head -$1 | awk '{print $2 " -- " $1}';
, поэтому вывод следующий:
username -- (amount of logins)
Но я пытаюсь получить вывод с именем и фамилией из / etc / passwd, так что это:
first and last name, username -- (amount of logins)
Но каждая идея, которую я пытаюсь придумать, не работает для меня. Я попытался зациклить awk с / etc / passwd и затем использовать -v в другом awk или попытаться получить выходные данные 2nd awk в массив, а затем сравнить его с / etc / passwd, но я не смог заставить ни одну из них работать. У кого-нибудь есть идеи, как с этим справиться?