shell -awk 输出流的处理
gawk 分隔符 ‘ 条件 {print $排位 $排位} ’ 文件名
常用命令选项
-f 数据字段的文件分割符 默认为空格
-f 读取程序的文件名
-v 定义awk程序中使用的变量和默认值
awk程序运行的优先级是:
1)begin 在开始处理数据流之前执行 可选项
2)program 如何处理数据流,必选项
3)end 处理数据流后执行 可选项
awk的基本用法---wak数据提取功能
1)列的提取
$0 整行文本 [root@localhost yanliao]# gawk “ {print $0} ” test
$1 第一个数据字段
$N 第n个数据字段
$NF 最后个字段
举例子:获取当前主机指定网卡的ip地址
[root@localhost yanliao]# gawk -F: '$3>=1000 { print$1 $7 }' /etc/passwd
输出结果:
nfsnobody/sbin/nologin
yanliao/bin/bash
lichao/bin/bash
nfsnobody/sbin/nologin
yanliao/bin/bash
lichao/bin/bash
制表符 /t
[root@localhost yanliao]# gawk -F: '$3>=1000 { print$1 "\t" $7 }' /etc/passwd
nfsnobody /sbin/nologin
yanliao /bin/bash
lichao /bin/bash
nfsnobody /sbin/nologin
yanliao /bin/bash
lichao /bin/bash
举例子:打印出系统中能登陆的普通用户
多条件 &&
[root@localhost yanliao]# gawk -F: '$3>=1000 && $7=="/bin/bash" { print$1 "\t" $7 }' /etc/passwd
yanliao /bin/bash
lichao /bin/bash
yanliao /bin/bash
lichao /bin/bash
举例子:打印输出信息时加上表头
BEGINE 设置计数和打印头部信息
[yanliao@localhost ~]$ gawk -F: 'BEGIN{print"name"}$3>=1000 && $7=="/bin/bash" { print$1 "\t" $7 }' /etc/passwd
name
yanliao /bin/bash
lichao /bin/bash
name
yanliao /bin/bash
lichao /bin/bash

浙公网安备 33010602011771号