从“最后”获取常用用户名 unix 中的命令 - 有例外
如果我在 OS X 上运行这个:
last -10 | awk '{print $1}'
我得到: 砍
砍
砍
chrihopk
重新启动
关闭
砍
砍
砍
chrihopk
如何使用 sed 或 awk 获取最频繁的用户“chop”?
对问题的额外编辑:
我们的本地管理员帐户会干扰结果(用户名:support),并且通常我们的客户端盒子上会有一个新的启动器。
我如何修改
last -1
以省略以下内容并返回最后一个有效用户名:
support
重新启动
关闭
谢谢
If I run this on OS X:
last -10 | awk '{print $1}'
I get:
chop
chop
chop
chrihopk
reboot
shutdown
chop
chop
chop
chrihopk
How do I use sed or awk to obtain the most frequent user 'chop'?
ADDITIONAL EDIT TO QUESTION:
Our local admin account interferes with the results (username: support) and often we have a new starter on a client box.
How could I modify
last -1
to omit the following and return the last valid username:
support
reboot
shutdown
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
如果您想要
一个具有登录次数的良好升序用户列表(
$0!~/^$/
内容仅确保空白行不会被计算在内):<前><代码>最后| awk '$0!~/^$/ {print $1}' | 排序| uniq-c| 种类
用户名和登录号码:
追加<代码>| tail -1 到上面的代码。
与上面的 awk 相同(更快):
<前><代码>最后| awk '{a[$1]++}END{m=0;for(v in a){if(a[v]>m){m=a[v];u=v}}打印 m,u }'
仅在 awk 中使用用户名:
从上面的代码中删除最后一个
m,
。If you want
a nice ascending-ordered list of users with number of logins (the
$0!~/^$/
stuff only assures blank lines will not be counted):username with logins number:
append
| tail -1
to the code above.same as above in awk (faster):
username only in awk:
delete the last
m,
from the code above.只需 awk
和 gawk,您就可以使用 asort、asorti 内部函数
just awk
with gawk, you can make use of the asort, asorti internal functions
以下管道提供了一个起点,我确信可以对其进行优化:
The following pipeline offers a starting point, which I'm certain could be optimized:
在回答您的编辑时,请保留
last
的数字参数并使用egrep
,如下所示:然后将其通过管道传输到
awk
中,如其他答案中所示。In answer to your edit, leave off the numeric argument to
last
and useegrep
like this:then pipe that into
awk
as in the other answers.sort -un
做了一些事情,但我不确定是什么......sort -un
does something, but I'm not sure what...如果将其进行排序,您将获得一个易于解析的数据列表,以找到最频繁的用户,尽管我不知道如何在没有脚本语言的情况下找到该用户。
If you pipe that into sort, you'll get an easily parsable list of data to find the most frequent user, although I don't know how to find that user without a scripting language.