计算 wtmp 文件中的唯一用户数

计算 wtmp 文件中的唯一用户数

我正在努力计算 wtmp 文件中的唯一用户。

这是我到目前为止所拥有的:

uniqueUsers=$(last | uniq -c | wc -l)

echo "There were '$uniqueUsers' unique users logged on"

任何帮助是极大的赞赏!

答案1

last命令给出多列输出;您应该仅提取第一列(使用awkcut),并对数据进行排序,以便uniq可以完成其工作。同时使用uniq -cwc -l是多余的(选择一个):

uniqueUsers=$(last |cut -f1 -d ' ' | grep -v -e '^\(\|reboot\|wtmp\)$' |sort -u | wc -l)

答案2

我的刺,短一点(因为我更喜欢 awk 而不是 cut):

uniqueUsers=$(last | awk '{ print $1 }' | sort -u | grep -vE 'reboot|wtmp|^$'| wc -l)

答案3

忽略空行、wtmp 并重新启动。

last | awk '!a[$1]++&&$1!~/reboot|wtmp|^$/' | wc -l

相关内容