1

该命令返回四个字段,lastlog例如Username、和 。PortFromLatest

例如。

$ lastlog
Username         Port     From             Latest
root                                       **Never logged in**
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
sync                                       **Never logged in**
games                                      **Never logged in**

我只需要字段usernamelatest.

我该如何使用grepor来做到这一点awk

4

3 回答 3

3

输出是固定宽度,并且不能保证字段数,所以我会这样做:

$ lastlog | cut -c1-15,44-
Username       Latest
root           **Never logged in**
daemon         **Never logged in**
bin            **Never logged in**
sys            **Never logged in**
sync           **Never logged in**
games          **Never logged in**

lastlog针对您自己系统上 的给定输出进行适当调整。

于 2013-06-14T13:09:55.483 回答
1

原则:

lastlog | awk '{print $1,$4}'

但是,您的最后一个字段由空格分隔,因此它不被视为单个字段awk。如果您想要最后一部分,请使用cut

lastlog | cut -c 1-10,40- 
于 2013-06-14T13:07:13.107 回答
1

GNU sed

sed -r 's/(.{10}).{25}/\1/' file

..输出是:

用户名 最新
root **从未登录过**
守护进程**从未登录**
bin **从未登录过**
sys **从未登录过**
同步**从未登录**
游戏**从未登录**
于 2013-06-14T18:23:05.100 回答