列出所有用户以及他们上次阅读电子邮件,管道到多个输出

时间:2012-08-17 13:25:00

标签: linux bash pipe

我有一个系统,我想做一点清理,所以我想得到所有用户帐户和他们访问邮件的最后日期。这是一个Debian系统。

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

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

但是我不知道如何在Mail上写这个用户名。最后阅读时间:2012年8月12日星期日03:06(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.

1 个答案:

答案 0 :(得分:3)

使用-B选项:

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

假设包含“Login:Name:”的行在finger输出中出现3行之前的邮件状态。 awk命令打印grep输出第一行的第二个字段,以及包含邮件状态的行。