1、awk
awk主要是用来格式化文本
语法结构
awk [参数] [处理规则] [操作对象]
参数
-F :指定文本分割符(默认是以空格作为分割符的)
eg:
打印系统所有用户的解析器
awk -F: '{print $NF}' /etc/passwd
$NF打印最后一列
awk 的生命周期
三剑客都是读一行处理一行,直至处理完成
1、接受一行作为输入
2、把刚刚读入进来得到的文本进行分解
3、使用处理规则处理文本
4、输入一行,赋值给$0, 直至处理完成
5、把处理完成之后的所有数据交给END{}来再次处理
4、awk的预定义变量
$0 代表当前行
[root@localhost ~]# awk -F: '{print $0, "---"}' /etc/passwd
$n 代表第n 列
[root@localhost ~]# awk -F: '{print $1}' /etc/passwd
NF 记录当前行的字段数
[root@localhost ~]# awk -F: '{print NF}' /etc/passwd
$NF打印最后一列
[root@localhost ~]# awk -F: '{print $NF}' /etc/passwd
NR 用来记录行号
[root@localhost ~]# awk -F: '{print NR}' /etc/passwd
相当于迭代器
FS 指定文本内容分隔符(默认空格)
[root@localhost ~]# awk 'BEGIN{FS=":"}{print $NF, $1}' /etc/passwd
FS的优先级要高于-F
OFS 指定打印分隔符
[root@localhost ~]# awk -F: 'BEGIN{OFS=" >>> "}{print $NF, $1}' /etc/passwd