### sample 1:
```
last -n 5 | awk '{print $1}'
```
* 打印出最近登录的 5 个用户的用户名
### sample 2:
```
awk '{print $1"\t"$7' /usr/passwd
```
* 打印出系统中所有的用户及其 shell, 用 \t 分隔
* 注意: \t 字符需要用双引号( " )包含
### sample 3:
```
last -n 5 | awk 'BEGIN {print "name\tip"} {print $1"\t"$3}'
```
* 打印出最近登录的 5 个用户及登录IP
* BEGIN 后的文件之前执行
* 还有一个 END 关键字, 在所有记录扫描后执行
### sample 4:
```
last -n | awk 'BEGIN {print "name\tip"} /ralph/{print $1"\t"$3}'
```
* 打印出登录者为 ralph 的用户名及 IP
* 正则表达式需要放到中间的 action 前, 不能放到 BEGIN 前
### sample 5:
```
last -n 5 | awk '/ralph/ {print NR"\t"NF }'
```
* 输出行号, 列数
* NR 为 awk 内置变量, 值为当前扫描的行号
* NF 为 awk 内置变量, 值为当前行的域数(即列数) [ awk * 用分隔符(默认为\t)将文本分为多个域(列) ]
### sample 6:
```
awk '/root/ {print FILENAME}' /etc/passwd
```
* 输出扫描的文件名
* 若以管道作为 awk 的输入, 则 FILENAME 为空
### sample 7:
```
awk 'BEGIN {count=0} {count++} END {print "user count: ", count' /etc/passwd
```
* 统计用户数
* 解释: BEGIN 中定义用户变量 count 并初始化为 0, action 中每扫描一行 count 自增
* END 扫描结束, 输出 count, 即为 /etc/passwd 中行数(即用户数)
* wc /etc/passwd 对比结果