3

我有一个系统,我想做一些清理工作,所以我想获取所有用户帐户和他们访问邮件的最后日期。它是一个 Debian 系统。

到目前为止,我得到了这个:

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

但我不知道如何在 Mail 前面写下那个用户名 last read Sun Aug 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}'

假设包含“登录:名称:”的行出现在手指输出中邮件状态之前的 3 行。该awk命令打印 grep 输出的第一行的第二个字段,以及包含邮件状态的行。

于 2012-08-17T13:33:36.713 回答