awkを使用して毎月毎日ログイン数を取得するには?

awkを使用して毎月毎日ログイン数を取得するには?

毎月私のサーバーに毎日ログインしているユーザーの数を知りたいです。毎月1日から始まります。これを行うには、awkを使用する方が良いでしょう。
私の出力は次のようになります。

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

ベストアンサー1

次のように使用できます。

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

おすすめ記事