Итак, я пытался получить X последних входов в систему для ВСЕХ пользователей, используя сценарий bash, но знает ли кто-нибудь, как точно извлечь только дату, чтобы я мог создать набор в какой-то таблице ? используя последний, я получаю такой вывод:
yogi pts/0 192.168.0.103 Fri Nov 18 07:04 - 07:05 (00:00)
yogi pts/1 10.8.3.6 Thu Nov 17 14:36 - 16:53 (02:17)
yogi pts/0 10.8.3.6 Thu Nov 17 14:32 - 16:45 (02:12)
и поэтому с awk '{print $ 1, $ 4, $ 5, $ 6,}' я могу зайти только так далеко но есть там далеко, чтобы получить что-то вроде этого:
name surname login date1 date2 date3 date4 etc.
Я немного почесываю голову над этим; /
В Gnu awk:
$ cat program.awk
NR==FNR {
split($5,a,",")
b[$1]=a[1]
next
}
($1 in b) && ++c[$1]<=5 {
d[$1]=d[$1] $4 " " $5 " " $6 (c[$1]==5?"":OFS)
}
END {
for (i in d)
print b[i], i, d[i]
}
Запустить:
awk -f program.awk OFS=", " FS=":" /etc/passwd FS=" +" <(last)
James Brown, james, Sat Nov 19, Wed Nov 16, Tue Nov 15, Mon Nov 14, Sun Nov 13
Плохой пример, так как я использую свой ноутбук. Порядок вывода - Gnu awk по умолчанию, т.е. случайный. Если при желании измените порядок перемещения на PROCINFO ["sorted_in"] = "@ ind_str_asc"
.