awk数据处理工具

网络营销评论77
awk数据处理工具-图片1awk数据处理工具-图片2awk数据处理工具

awk:是一款功能非常强大的数据处理工具,是一种用于文本处理的编程语言工具,如果对其进行详细介绍,完全可以写一本书了,在此我们只是简单了解一下它的初级应用,这款工具在东莞seo的日志分析工作中是最为重要和方便的。

awk其实是早期UNIX中的文本处理工具,后来GUN做了gawkgawk包含了awk的所有功能,现在很多地方都使用gawk代替了awk。在常见的Linux系统中,为了保留大家使用awk的习惯,系统做了一个软链接,将awk指向gawk,因此在大部分系统中使用awk其实调用的是gawk程序,在Cygwin中也不例外,因此在Cygwin中可以使用awk,也可以使用gawk,可以认为awkgawk的一个简短的别名而已。不过在DOS下使用UnxUtils包中的命令时要使用gawk,因为在UnxUtils包中只有gawk.exe程序,系统中又没有把awk指向gawk.exe,所以在DOS窗口下并不能直接使用awk(如图10-31所示)。当然为了自己的习惯,也可以在UnxUtils包中直接把gawk.exe改名或复制并改名为awk.exe

awk数据处理工具-图片3

awk在东莞seo中最为突出的功能就是支持对字段的处理,可以按照指定字符把每行数据分成字段的形式,然后按照字段数据做出相应的处理。众所周知日志文件中的数据都是以空格分段的,因此awk会在日志分析工作中起到很重要的作用。awk的基本格式如下:

awk-F pattern {action}

一F后面跟的是分隔符,也就是以指定的符合来对每一行要处理的数据分段,默认为空格。 pattern模式,也就是action执行的条件,当命令中缺少pattern时,awk会对每行数据都执action。在东莞seo中经常用到的pattern形式有:/正则表达式/,关系表达式,模式匹配表达式。

action即执行的操作,一般是按照一定格式打印出所需要的数据。当命令中缺少action时,即打印出整行符合条件的数据。

在awk中,使用$n来记录第n段数据,n为整数;$0表示整行数据;NF为当前记录中的字段数,$NF可以用来表示最后一个字段。

如图10-32所示,笔者建立了一个文件8.txt,里面有三列数据:关键词、指数和百度搜索结果(数据为随便虚构的),下面通过对此文件中数据的处理来演示一下awk的使用方法。

条件为正则表达式:图10-33为在8.txt中提取以“东莞seo”开头的整行数据,“//”中为正则表达式条件,$0为整行数据。打印整行数据时可以省略action,也就是可以使用图10-33中的第二种形式。

awk数据处理工具-图片4

awk数据处理工具-图片5

条件为关系表达式:图10-34中第一条命令为在8.txt中提取指数大于1000的数据行;第二条命令为在8.txt中提取指数大于1000的数据,且只需要提取关键词和指数数据,并不需要提取百度搜索结果数。$1记录的是数据的第一个字段即关键词,$2记录的是数据的第二个字段即指数,在action中使用“,”分割两个变量,结果中会表现为空格,如果不加“,”,则两列数据会紧贴到一起。第三条命令表示变量之间也可以进行运算,意思是在8.txt中提取指数和百度搜索结果数的比值大于0.0 01的数据(在一定程度上表示可优化价值),只提取关键词不需要其他数据。

条件为模式匹配表达式:图10-35中的两条命令分别表示为提取8.txt内关键词中包含和不包含“东莞seo”的数据。“~”为匹配,“!~”为不匹配。

awk数据处理工具-图片6

awk数据处理工具-图片7

awk数据处理工具-图片8awk数据处理工具-图片9awk数据处理工具-图片10awk数据处理工具-图片11

 
匿名

发表评论

匿名网友
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: