3

少しクリーンアップしたいシステムが 1 つあります。そのため、すべてのユーザー アカウントと、ユーザーが最後にメールにアクセスした日付を取得したいと考えています。これは Debian システムです。

これまでのところ、私はこれにたどり着きました:

cut -d: -f1 /etc/passwd | xargs -n1 finger | grep "Mail last read"

しかし、メールの前にそのユーザー名を書き込む方法がわかりません 最終読み取り日 8月 12日 03:06 2012 (CEST)

編集ありがとうございます: これはサンプルの指出力です:

/bla# finger xxxxx
Login: xxxxx                         Name: xxxxx xxxxx
Directory: /home/xxxxx               Shell: /bin/true
Never logged in.
Mail last read Sun Aug 12 03:17 2012 (CEST)
No Plan.
4

1 に答える 1

3

-B オプションの使用:

... | grep -B3 "Mail last read" | awk '/Login:/ {name=$2} /Mail last read/ {print name, $0}'

"Login: Name: " を含む行が finger の出力でメールステータスの 3 行前に表示されると仮定します。このawkコマンドは、grep からの出力の最初の行の 2 番目のフィールドと、メールの状態を含む行を出力します。

于 2012-08-17T13:33:36.713 に答える