awk工具使用
2018-03-10 17:08
141 查看
-F ':' 指定分隔符 $1第一列
$1"#"$3
匹配含有oo的行 '/oo/{print $1,$2,$3}'匹配含有oo的行,并打印123列
在第一列中匹配含有oo行
多个条件匹配
条件判断 第三列大于1000的行
awk -F ':' '$3>="1000"' pw.txt 如果1000加双引号,代表字符,不是数字
第三列不等于1000的行
第三列大于第四列
更换分割符{OFS="#"}
打印行号 print NR
打印有几列 NF
也可用NR,NF做条件判断 'NR>10 || NF<5 {print $1}'
将第一列更改为root,但是会去掉分隔符,需要用OFS添加
函数运算,将第三列累加,并打印
[root@glinux-01 ~]# awk -F ':' '{print $1,$3}' pw.txt |head -5 root 0 bin 1 daemon 2 adm 3 lp 4
$1"#"$3
[root@glinux-01 ~]# awk -F ':' '{print $1"#"$3"#"}' pw.txt |head -5 root#0# bin#1# daemon#2# adm#3# lp#4#
匹配含有oo的行 '/oo/{print $1,$2,$3}'匹配含有oo的行,并打印123列
[root@glinux-01 ~]# awk '/oo/' pw.txt root:x:0:0:root:/root:/bin/bash lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin postfix:x:89:89::/var/spool/postfix:/sbin/nologin [root@glinux-01 ~]# awk -F ':' '/oo/{print $1,$2,$3}' pw.txt 匹配含有oo的行,并打印123列 root x 0 lp x 4 mail x 8 operator x 11 postfix x 89
在第一列中匹配含有oo行
[root@glinux-01 ~]# awk -F ':' '$1 ~ /oo/' pw.txt root:x:0:0:root:/root:/bin/bash
多个条件匹配
[root@glinux-01 ~]# awk -F ':' '/root/{print $1,$2} /ggg/ {print $1}' pw.txt//如果一行中有两个关键词打印两次 root x operator x ggg1 ggg2 [root@glinux-01 ~]# awk -F ':' '/root|ggg/ {print $1}' pw.txt 或者这样写 root operator ggg1 ggg2
条件判断 第三列大于1000的行
[root@glinux-01 ~]# awk -F ':' '$3>=1000' pw.txt ggg1:x:1000:1000::/home/ggg1:/bin/bash ggg2:x:1001:1001::/home/ggg2:/bin/bash g1:x:1002:1002::/home/g1:/bin/bash
awk -F ':' '$3>="1000"' pw.txt 如果1000加双引号,代表字符,不是数字
第三列不等于1000的行
[root@glinux-01 ~]# awk -F ':' '$3!=1000' pw.txt|head -5 root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
第三列大于第四列
[root@glinux-01 ~]# awk -F ':' '$3>$4' pw.txt|head -5 sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt operator:x:11:0:operator:/root:/sbin/nologin polkitd:x:999:997:User for polkitd:/:/sbin/nologin [root@glinux-01 ~]# awk -F ':' '$3>$4 && $3<=7' pw.txt|head -5 sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt [root@glinux-01 ~]# awk -F ':' '$3>$4 && $3<=7 && $7 ~ /sbin/' pw.txt|head -5 //并且第7行含有sbin shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt
更换分割符{OFS="#"}
[root@glinux-01 ~]# awk -F ':' '{OFS="#"}{print $1,$2}' pw.txt|head -5 root#x bin#x daemon#x adm#x lp#x [root@glinux-01 ~]# awk -F ':' '{OFS="#"} $3>$4 {print $1,$2}' pw.txt|head -5 sync#x shutdown#x halt#x operator#x polkitd#x [root@glinux-01 ~]# awk -F ':' '{OFS="#"} {if($3>$4) {print $1,$2}}' pw.txt|head -5同上一条
打印行号 print NR
[root@glinux-01 ~]# awk -F ':' '$3>$4 {print NR ":" $1}' pw.txt|head -5 6:sync 7:shutdown 8:halt 10:operator 16:polkitd
打印有几列 NF
[root@glinux-01 ~]# awk -F ':' '$3>$4 {print NF ":" $1}' pw.txt|head -5 7:sync 7:shutdown 7:halt 7:operator 7:polkitd
也可用NR,NF做条件判断 'NR>10 || NF<5 {print $1}'
将第一列更改为root,但是会去掉分隔符,需要用OFS添加
[root@glinux-01 ~]# awk -F ':' '$1="root"' pw.txt|head -3 root x 0 0 root /root /bin/bash root x 1 1 bin /bin /sbin/nologin root x 2 2 daemon /sbin /sbin/nologin [root@glinux-01 ~]# awk -F ':' '{OFS=":"}$1="root"' pw.txt|head -3 root:x:0:0:root:/root:/bin/bash root:x:1:1:bin:/bin:/sbin/nologin root:x:2:2:daemon:/sbin:/sbin/nologin
函数运算,将第三列累加,并打印
[root@glinux-01 ~]# awk -F ':' '{(sum=sum+$3)};END {print sum}' pw.txt 5608
相关文章推荐
- (管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
- Oracle 使用 ass.awk 工具查看 system state dump 说明
- awk取出指定某天的慢日志(mysql)并使用工具分析
- AWK工具使用学习笔记(一)
- AWK工具使用学习笔记(二)
- 如何在Linux中使用awk工具详解
- awk工具使用
- Linux/Unix工具与正则表达式的POSIX规范--awk使用中遇到的坑
- 使用cygwin中的awk工具进行mysql binlog日志查看[利刃篇]
- linux(5)--补充(管道| / 重定向> / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)
- grep,sed,awk工具的使用
- 【Linux】awk工具使用方法
- Linux下的sed工具及awk工具的使用
- awk工具的简单使用
- linux中awk工具的使用
- 详解 awk 工具的使用方法(转载)
- Oracle 使用 ass.awk 工具查看 system state dump 说明
- Oracle 使用 ass.awk 工具查看 system state dump 说明
- 读书笔记--find、sed、awk工具的使用
- awk工具的使用