Wtmpファイル内の一意のユーザー数を数えるのに苦労しています。
これが私が今まで持っているものです:
uniqueUsers=$(last | uniq -c | wc -l)
echo "There were '$uniqueUsers' unique users logged on"
どんな助けでも大変感謝します!
答え1
このlast
コマンドは複数列の出力を提供します。最初の列のみを抽出(awk
または使用)し、その操作を実行できるcut
ようにデータを並べ替える必要があります。uniq
両方を使用するとuniq -c
重複wc -l
します(1つ選択)。
uniqueUsers=$(last |cut -f1 -d ' ' | grep -v -e '^\(\|reboot\|wtmp\)$' |sort -u | wc -l)
答え2
少し短い私の突き刺し(私は切ることを好むので):
uniqueUsers=$(last | awk '{ print $1 }' | sort -u | grep -vE 'reboot|wtmp|^$'| wc -l)
答え3
空行を無視してwtmpを実行して再起動してください。
last | awk '!a[$1]++&&$1!~/reboot|wtmp|^$/' | wc -l