1、awk命令
报告生成器
【1】用法
awk -F 分隔符 BEGIN{}{}END{} FILENAME
FILENAME #文件名称本身
-F 指定分隔符号
【2】awk的使用
- 行数,列数
NR | 行数 |
---|---|
NF | 列数 |
FILENAME | 文件名称本身 |
westos | westos变量值 |
- 条件
/条件1|条件2/ #条件1或者条件2
/条件1/||/条件2/ #条件1或者条件2
/条件1/&&/条件2/ #条件1并且条件2
$0 #所有的列
$1 #第一列
$2 #第二列
$3 #第三列
- 列
[root@xy ~]# awk -F : '/^root/&&/bash$/{print $1,$7}' /etc/passwd 第一列和第7列
root /bin/bash
[root@xy ~]# awk -F : '/^root/&&/bash$/{print}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@xy ~]# awk -F : '/^root/&&/bash$/{print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash 所有列
[root@xy ~]#
【3】变量值与字符串
[root@xy mnt]# awk BEGIN'{print NAME}' westos 不加引号表示变量值
[root@xy mnt]# man awk
[root@xy mnt]# awk BEGIN'{print "NAME"}' westos 加引号表示字符串
NAME
练习:
统计在系统中能su切换的并且用户家目录不在/home下是我用户数量