文本处理工具AWK详解

awk简介

awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows上实现,gawk, awk实现在linux上。awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配的行显示到标准输出(屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。awk分别代表其作者姓氏的第一个字母,分别是Alfred Aho、Brian Kernighan、Peter Weinberger。gawk是awk的GNU版本,它提供

了Bell实验室和GNU的一些扩展。下面就对awk进行介绍。

awk使用的基本格式:

# awk [options] ‘script’ file1 file2, …# awk [options] ‘PATTERN { action }’ file1 file2, …细化了上面的组合常用的命令:print(输出), printf(打印)

awk工作过程

根据我们所定义的模式,一次从文件中读取一行文本,awk会对取出的文本做相应的切片,将每一行按照分隔符进行切割,假如我们有一行文本: this is a test.它会使用空白字符当做分隔符,将它们各个分开,切割成了四个片,分别为: this is a test.这四个片,可以使用变量,分别对应为$1,$2,$3,$4代表四个切割片,下面就做一个演示,看如何实现awk的强大功能

一、awk的输出:print

print的使用格式:print item1, item2, …

输出要点:

1、各项目之间使用逗号隔开,而输出时则以空白字符分隔;

2、输出的item可以为字符串或数值、当前记录的字段(如$1)、变量或awk的表达式;数值会先转换为字符串,而后再输出;

3、print命令后面的item可以省略,此时其功能相当于print $0, 因此,如果想输出空白行,则需要使用print “”;

实例分析:

显示整个文本(注意,这里只是测试,,所以只有一行)# awk ‘{print $N}’ test.txtthis is a test.# awk ‘{print $0}’ test.txtthis is a test.显示文本的一行中的第一个参数# awk ‘{print $1}’ test.txtthis显示文本的一行中的第二个参数# awk ‘{print $2}’ test.txtis显示文本的一行中的第四个参数# awk ‘{print $4}’ test.txttest.显示文本的一行中的第一与第二个个参数# awk ‘{print $1,$2}’ test.txtthis is显示文本的一行中的第一个与第二个参数,中间可以加#号# awk ‘BEGIN{OFS=”#”}{print $1,$2}’ test.txtthis#is显示文本中的各个参数,还可以加修饰符# awk ‘BEGIN{OFS=”:”}{print $1,$2,$3,$4}’ test.txtthis:is:a:test.显示文本中的参数,还可以加修饰符,还可以加字符串# awk ‘BEGIN{OFS=”:”}{print $1,”hello”,$2}’ test.txtthis:hello:is输出三行,注意换行需要加\n# awk ‘BEGIN { print “line one\nline two\nline three” }’line oneline twoline three

获致幸福的不二法门是珍视你所拥有的、遗忘你所没有的

文本处理工具AWK详解

相关文章:

你感兴趣的文章:

标签云: