Welcome 微信登录

首页 / 操作系统 / Linux / 文本处理工具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的输出:printprint的使用格式:
print item1, item2, ...输出要点:1、各项目之间使用逗号隔开,而输出时则以空白字符分隔;2、输出的item可以为字符串或数值、当前记录的字段(如$1)、变量或awk的表达式;数值会先转换为字符串,而后再输出;3、print命令后面的item可以省略,此时其功能相当于print $0, 因此,如果想输出空白行,则需要使用print "";实例分析:显示整个文本(注意,这里只是测试,所以只有一行)
#  awk "{print $N}" test.txt
this is a test.
# awk "{print $0}" test.txt
this is a test.
显示文本的一行中的第一个参数
# awk "{print $1}" test.txt
this
显示文本的一行中的第二个参数
# awk "{print $2}" test.txt
is
显示文本的一行中的第四个参数
# awk "{print $4}" test.txt
test.
显示文本的一行中的第一与第二个个参数
# awk "{print $1,$2}" test.txt
this is
显示文本的一行中的第一个与第二个参数,中间可以加#号
# awk "BEGIN{OFS="#"}{print $1,$2}" test.txt
this#is
显示文本中的各个参数,还可以加修饰符
# awk "BEGIN{OFS=":"}{print $1,$2,$3,$4}" test.txt
this:is:a:test.
显示文本中的参数,还可以加修饰符,还可以加字符串
#  awk "BEGIN{OFS=":"}{print $1,"hello",$2}" test.txt
this:hello:is
输出三行,注意换行需要加
# awk "BEGIN { print "line one line two line three" }"
line one
line two
line three
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 下一页
Linux系统安装的引导镜像制作流程分享Linux 中交换空间 (swap)应该分多大才好?相关资讯      awk 
  • 使用 awk 过滤文本或文件中的字符  (07月25日)
  • Linux 管理员都应该会的命令:sed   (01月13日)
  • Linux awk文本分析工具  (12/13/2015 16:29:12)
  • 使用awk格式化输出文本  (04月14日)
  • 使用awk批量杀进程的命令  (12/20/2015 15:36:24)
  • 使用 Linux/Unix 进行文本处理  (11/23/2015 09:54:13)
本文评论 查看全部评论 (0)
表情: 姓名: 字数