Linux centos7 awk工具
一、awk介绍
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk含盖sed所有功能,把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
二、awk上
1.截取文档中的某个片段
[root@davery ~]# mkdir awk 先创建一个awk
[root@davery ~]# cp /etc/passwd awk/0.txt
[root@davery ~]#
[root@davery ~]# cd awk
[root@davery awk]# head -n3 0.txt 显示前3行
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $0}' $0比较特殊为截取整行或者
awk '{print $0}' 0.txt 无须指定分隔符
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $1}' 把0.txt前3行,第1个字段($1)显示出来
root
bin
daemon
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $2}' 把0.txt前3行,第2个字段($2)显示出来
x
x
x
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $3}' 把0.txt前3行,第3个字段($3)显示出来
0
1
2
[root@davery awk]# head -n2 0.txt |awk -F ':' '{print $6}' 把0.txt前2行,第6个字段($6)显示出来
/root
/bin
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $1"#"$2"#"$3"#"}' 可以自定义格式'{print $1"#"$2"#"$3"#"}'
root#x#0#
bin#x#1#
daemon#x#2#
[root@davery awk]#
[root@davery awk]# head -n3 0.txt |awk -F ':' '{print $1,$2,$3}' 把0.txt前3行,第1,2,3个字段($1,$2,$3)显示出来
root x 0
bin x 1
daemon x 2
[root@davery awk]#
2.匹配字符或者字符串(查找并显示)
[root@davery awk]# awk '/ro/' 0.txt 显示第一段含有ro的所有行
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
[root@davery awk]# awk -F ':' '$1 ~/oo/' 0.txt ~代表匹配的意思,把0.txt里面第1个字段($1)含有oo的都显示出来
root:x:0:0:root:/root:/bin/bash
[root@davery awk]# awk -F ':' '$1 ~/ot/' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]# awk -F ':' '$1 ~/root/' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]#
[root@davery awk]# awk -F ':' '/root/ {print $1,$3} /test/ {print $1.$3}' 0.txt 匹配完root,然后再匹配test,支持多个表达式一起
root 0
operator 11
[root@davery awk]#
3.数学操作,==等于,>、>=、<、<=、!=
[root@davery awk]#awk -F ‘:’ '$3="0"' 0.txt
[root@davery awk]#awk -F ‘:’ '$3>="500"' 0.txt 加“”针对字符串
[root@davery awk]#awk -F ‘:’ '$3>=500' 0.txt 针对数字不需要“”
[root@davery awk]#awk -F ‘:’ '$7!="/sbin/nologin"' 0.txt
[root@davery awk]#awk -F ‘:’ '$3>$4' 0.txt
[root@davery awk]#awk -F ‘:’ '$3>$4 && $3<"7" '0.txt
[root@davery awk]#awk -F ‘:’ '$3>1000 || $7=="/bin/bash" 0.txt
二、awk下
awk内置变量,常用变量有OFS、NF、NR、-F 功能类似,用来定义分割符,作为输出时NF表示使用分隔符分隔后一共有多少段,NR表示行号。
[root@davery awk]#head -5 /etc/passwd |awk -F ':' '{OFS="#"} {print $1,$3,$4}'
[root@davery awk]# head -5 /etc/passwd |awk -F ':' '{OFS="#"} {print $1,$3,$4}'
root#0#0
bin#1#1
daemon#2#2
adm#3#4
lp#4#7
[root@davery awk]#
[root@davery awk]#awk -F ':' '{OFS="#"} {if ($3>1000) {printf $1,$2,$3,$4}}' 0.txt
uaer1user2user3user4user6[root@davery awk]#
[root@davery awk]# head -n3 /etc/passwd |awk -F ':' '{print NF}'
7
7
7
[root@davery awk]#
[root@davery awk]# head -n3 /etc/passwd |awk -F ':' '{print NR}'
1
2
3
[root@davery awk]#
[root@davery awk]#awk 'NR>40' 0.txt
[root@davery awk]#awk -F ':' 'NR<20 && $1 ~/root/' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]#head -n 3 /etc/passwd |awk -F ':' '$1="root"'
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@davery awk]#
[root@davery awk]#awk -F ':' '{(tot=tot+$3)}; END {print tot}' 0.txt
[root@davery awk]# awk -F ':' '{(tot=tot+$3)}; END {print tot}' 0.txt
8629
[root@davery awk]#
[root@davery awk]# awk -F ':' '{if($1=="root") {print $0}}' 0.txt
root:x:0:0:root:/root:/bin/bash
[root@davery awk]#
Linux centos7 awk工具的更多相关文章
- [转帖]Linux中awk工具的使用
Linux中awk工具的使用 2018年10月09日 17:26:20 谢公子 阅读数 2170更多 分类专栏: linux系统安全 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权 ...
- linux中awk工具的使用(转)
add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...
- linux中awk工具的使用(转载)
awk是一个非常好用的数据处理工具.相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下: $ awk '条件类型1{动作1} 条件类型2{动作2} ...' ...
- linux中awk工具的使用
awk是一个非常好用的数据处理工具.相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理,awk处理方式如下: $ awk '条件类型1{动作1} 条件类型2{动作2} ...' ...
- Linux centos7 rsync工具介绍、rsync常用选项、rsync通过ssh同步
一.rsync工具介绍 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync ...
- linux中awk工具
awk sed以行为单位处理文件,awk比sed强的地方在于不仅能以行为单位还能以列为单位处理文件.awk缺省的行分隔符是换行,缺省的列分隔符是连续的空格和Tab,但是行分隔符和列分隔符都可以自定义, ...
- Linux centos7 sed工具介绍
一.sed上 grep工具功能只能实现查找,不能把查找的内容替换. sed本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行查找.删除.替换字符或字符串.调换字符串位置.直接修改文件内容等 ...
- 性能工具之linux三剑客awk、grep、sed详解
前言 linux 有很多工具可以做文本处理,例如:sort, cut, split, join, paste, comm, uniq, column, rev, tac, tr, nl, pr, he ...
- 77个常用Linux命令和工具
77个常用Linux命令和工具 Linux管理员不能单靠GUI图形界面吃饭.这就是我们编辑这篇最实用Linux命令手册的原因.这个指南是特别为Linux管理员和系统管理员 设计的,汇集了最有用的一些工 ...
随机推荐
- 世界协调时间(UTC)与中国标准时间
整个地球分为二十四时区,每个时区都有自己的本地时间.在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated).UTC与格 ...
- 【代码学习】PYTHON中的静态方法和类方法
一.类方法 是类对象所拥有的方法,需要用修饰器@classmethod来标识其为类方法,对于类方法,第一个参数必须是类对象,一般以cls作为第一个参数(当然可以用其他名称的变量作为其第一个参数,但是大 ...
- BGP前缀过滤(正则表达式)
BGP的正则表达式一般用在as-path中,常用的如下: .(点):表示匹配任意一个字符,包括空格. *:表示匹配零个或多个模式的出现.即前一个字符出现0次或多次. +:表示匹配一个或多个模式的出现. ...
- 【转】弹出USB大容量存储设备时出问题的解决方法
原文链接 如下图所示,这个问题,相信很多人都有遇到过,而且经常难以解决,试了很多方法都无效.到最后,只能抱着侥幸的心理直接拔出,如果运气好,可能没有事,如果运气不好,你的U盘或者移动硬盘就要从此报废了 ...
- P4710 平抛运动
题目:https://www.luogu.org/problemnew/show/P4710 $$ v_x = v_{x_0} = v \ sin \ \theta, \ v_y = v_{y_0} ...
- wc、grep 、 cut、paste 和 tr 命令的用法
1 wc 命令 wc 命令是一个统计的工具,主要用来显示文件所包含的行.字和字节数. wc 命令是 word count 的缩写. (1)命令格式 wc [选项] [文件] (2)常用参数 参数 描述 ...
- asp.net mvc Bundle
在使用ASP.NET MVC4中使用BundleConfig 将 js css文件 合并压缩使用,但是文件名含有min及特殊字符的将不引用 ,也不提示其他信息.
- C/C++网络编程7——多进程服务器端之fork函数
通过前面几节的内容,我们已经可以实现基本的C/S结构的程序了,但是当多个客户端同时向服务器端请求服务时,服务器端只能按顺序一个一个的服务,这种情况下,客户端的用户是无法忍受的.所以虚实现并发的服务器端 ...
- springboot中关于datasource的配置
datasource spring.dao.exceptiontranslation.enabled: 是否开启PersistenceExceptionTranslationPostProcessor ...
- 融资拿钱----HHR计划---第四课
第一节:开始学习 1,预热思考题: (1)投资人愿意投你?你想过你的投资逻辑是什么吗?(赚钱=行业天花板*成功的概率=细分行业天花板*集中度*whynow*whyme) (2)融资就是为了拿钱吗?你了 ...