前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >文本分析工具awk指令浅析

文本分析工具awk指令浅析

作者头像
吴柯
发布2018-04-16 14:31:04
9210
发布2018-04-16 14:31:04
举报

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命令可以查看正在应用的awk的来源(ls -l /bin/awk ).

这 种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个人所拥有的知识。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特 性。实际上 AWK 的确拥有自己的语言:AWK 程序设计语言, 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报 表,还有无数其他的功能。

1.简单过滤使用(支持行):

-awk [选项] '条件{print}' 文件

-命令 | awk

栗子:

1.找出可以登陆的用户

方法一:使用脚本grep... for i in ... 截取%%:*

方法二:sed -n '/bash$/s/:.*//p' /etc/passwd

方法三:awk -F: '/bash$/{print $1}' /etc/passwd

2.找出密码

head -1 /etc/shadom

2.初始化,处理数据,总结输出

awk 'BEGIN{X=12} /bash/{x++} END{print x}'

栗子:

输入命令:awk -F: 'BEGIN{print "名字 UID 目录"}/\/bash$/{print $1,$3,$6}END{print "总用户量:"NF}' /etc/passwd

则显示:

3.支持四则运算(+-*/)

栗子:1+3

awk 'BEGIN{X=1;Y=3;print x=y}'     #用变量

awk 'BEGIN{print 1+3}'         #非变量

4.判断条件

1)正则// $1~// $1!~//

2) 字符和数字== != > >= < <=

3)&& ||

栗子:

1)awk -F '$1=="wuke"' /etc/passwd  #wuke用户(精确)

2)awk -F '$3==0' /etc/passwd    #root用户

3)awk -F '$3>=1000' /etc/passwd #普通用户

awk内置函数:

gsub函数有点类似于sed查找和替换。它允许替换一个字符串或字符为另一个字符串或字符,并以正则表达式的形式执行。第一个函数作用于记录$0,第二个gsub函数允许指定目标,然而,如果未指定目标,缺省为$0。

index(s,t)函数返回目标字符串s中查询字符串t的首位置。length函数返回字符串s字符长度。

match函数测试字符串s是否包含一个正则表达式r定义的匹配。

split使用域分隔符fs将字符串s划分为指定序列a。

sprint函数类似于printf函数,返回基本输出格式fmt的结果字符串exp。

sub(r,s)函数将用s替代$0中最左边最长的子串,该子串被r匹配。

substr(s,p)返回字符串s在位置p后的后缀。

substr(s,p,n)同上,并指定子串长度为n。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吴柯的运维笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档