Awk

如何使用awk獲取當月每天的登錄次數?

  • April 26, 2020

我想知道當月每天有多少使用者登錄到我的伺服器。從每月的第一天開始。最好我想使用 awk 來做到這一點。

我的輸出應該是這樣的:

Apr 1: numOfLogins
Apr 2: numOfLogins
...
current day: numOfLogins

你可以像下面這樣使用它:

last <user>  | awk -v dt="$(date +%b)" '$5==dt{ k[$5$6]+=1; a[$5$6]=$5"-"$6"-"$7  } END { for ( i in k ) { split(a[i],s,"-");print s[1]" "s[2]": "k[i]" No of Logins"  } }' | sort -n -k2

對於非特定於使用者:

last | grep -ve reboot -ve wtmp | awk -v dt="$(date +%b)" '$5==dt{ k[$5$6]+=1; a[$5$6]=$5"-"$6"-"$7  } END { for ( i in k ) { split(a[i],s,"-");print s[1]" "s[2]": "k[i]" No of Logins"  } }' | sort -n -k2

或者

使用者列表:

last | grep -ve reboot -ve wtmp | awk -v dt="$(date +%b)" '$5==dt{ k[$1$5$6]+=1; a[$1$5$6]=$1"-"$5"-"$6"-"$7  } END { for ( i in k ) { split(a[i],s,"-");print s[1]" "s[2]" "s[3]": "k[i]" No of Logins"  } }' | sort -n -k3

引用自:https://unix.stackexchange.com/questions/582635