`
zotao
  • 浏览: 31786 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

awk备忘录

    博客分类:
  • unix
阅读更多

awk  简介
整体来说, a w k是所有s h e l l过滤工具中最难掌握的,不知道为什么,也许是其复杂的语法或含义不明确的错误提示信息。在学习a w k语言过程中,就会慢慢掌握诸如Bailing out 和a w k : c m d . L i n e :等错误信息。
可以说a w k是一种自解释的编程语言,之所以要在s h e l l中使用a w k是因为a w k本身是学习的好例子,但结合a w k与其他工具诸如g r e p和s e d,将会使s h e l l编程更加容易。
awk是必须熟练掌握的命令之一。
awk 调用方式
有三种方式调用a w k,第一种是命令行方式,如:
 awk [-F field-seperator] ‘commands’ input-file(s)
 这里,c o m m a n d s是真正的a w k命令。一般使用这种调用方法。
第二种方法是将所有a w k命令插入一个文件,并使a w k程序可执行,然后用a w k命令解释器作为脚本的首行,以便通过键入脚本名称来调用它。
第三种方式是将所有的a w k命令插入一个单独文件,然后调用:

awk 域和记录

示例文件:
$ cat bill.vc
0 system_type 0 1 2 0 * * * 业务类型
1 msisdn  2  16 0 * * * 手机号码
2 other_party 17 40 0 * * * 对端号码
3 start_datetime 41 53 0 * * * 通话时间 
a w k执行时,其浏览域标记为$ 1,$ 2 . . . $ n。这种方法称为域标识。使用这些域标识将更容易对域进行进一步处理。awk使用-F选项来指定域分割符,如-F “|”,表示以|作为分割符,默认分隔符为空格。上例中的,第一列就是$1,第二列是$2,$0表示整行记录。
范例
 awk ‘{print $1,$3}’ bill.vc
 awk ‘{print $0}’ *.vc
 
awk 条件操作符

操作符描述操作符描述
 < 小于
 > = 大于等于
 < = 小于等于
 ~ 匹配正则表达式
 = = 等于
 !~ 不匹配正则表达式
 != 不等于


awk 语句举例

awk ‘{if($2~/msisdn/) print $0}’ bill.vc
 对于bill.vc文件,如果第2个域含有msisdn则输出整行记录。
awk ‘{if($1<=1) printf(“%-20.20s:%d\n”,$2,$4);}’ bill.vc
 如果第一个字段的值小于或等于1,则格式化输出第2和第4个域
awk ‘BEGIN{total=0;}{if($1>0) total+=$4}END{print “total=“total}’ bill.vc
 说明:
  BEGIN:在遍历整个文件之前,将total置为0
  第二部分的{}是一条if语句,符合条件则修改total的值
  END:在遍历完整个文件之后,输出total的值。注意这里引号括起来表示为常量字符串.

awk 内置变量

FS 域分隔符
NF 域数
NR 记录数
FILENAME 输入的文件名
OFS 输出域分隔符

awk 内置函数

s p l i t ( s , a , f s ) 在f s上将s分成序列a
 echo “a,b,c”|awk ‘{split($0,destArry,’,’);print destArry[1], destArry[2], destArry[3]}’
l e n g t h ( s ) 返回s长度
 echo “a,b,c”|awk ‘{print length($0)}’
i n d e x ( s , t ) 返回s中字符串t的第一位置
 echo “a,b,c”|awk ‘{print index($0,”,”)}’
s u b s t r ( s , p ) 返回字符串s中从p开始的后缀部分
 echo “a,b,c”|awk ‘{print substr($0,3)}’
s u b s t r ( s , p , n ) 返回字符串s中从p开始长度为n的后缀部分
 echo “a,b,c”|awk ‘{print substr($0,3,1)}’

 

分享到:
评论

相关推荐

    Windows下Apache2.2 + Tomcat5.5 + Apr配置备忘录

    在Windows下,由于原生命令行不支持`awk`,Cygwin提供的`awk.exe`就显得尤为重要。 总结来说,配置Apache2.2 + Tomcat5.5 + Apr涉及的主要步骤包括安装Cygwin环境,编译Apache和Apr,配置Apache和Tomcat的集成,...

    巧用AWK处理二进制数据文件

    "巧用AWK处理二进制数据文件" AWK是Unix、Linux中处理文本的好工具,可以对复杂的文本文件进行整理,提取其中的全部或者部分数据,按照需要的格式予以显示。但是,AWK的强大功能只针对纯文本文件,对于带有很多不可...

    awk详细用法小结awk awk

    ### awk详细用法小结 #### 一、awk简介与版本 awk是一种强大的文本分析工具,主要用于Linux/Unix系统下的数据处理与报告生成。它支持正则表达式、模式匹配和复杂的文本处理功能,是系统管理员和程序员进行数据处理...

    awk入门到精通.pdf

    《awk入门到精通》是一本专为对awk语言感兴趣的学习者设计的实用指南,旨在帮助他们理解和掌握awk的基本概念、语法以及如何有效运用这一强大的文本处理工具来解决各类问题。awk作为一种解释型语言,在文本处理领域中...

    AWK AWK 详细使用文档

    ### AWK 详细使用文档知识点概述 #### 一、AWK简介 - **AWK**是一种专门用于文本处理和报告生成的脚本语言。它的名字来源于三位创造者的名字首字母:Alfred V. Aho、Brian W. Kernighan 和 Peter J. Weinberger。 ...

    awk参考资料下载awk

    【awk参考资料】深入理解awk awk是一种强大的文本分析工具,主要在Linux/Unix环境中使用,由Alfred Aho、Brian Kernighan和Peter Weinberger三位大师共同开发。它能够处理来自标准输入、文件或命令输出的数据,通过...

    Sed与Awk (中文版)

    **sed和awk工具的介绍与应用** sed和awk是广泛应用于UNIX系统中的两个文本处理工具。sed是流编辑器(stream editor)的缩写,而awk则是一种编程语言,得名于其三位开发者:Alfred Aho、Peter J. Weinberger和Brian ...

    The AWK Programming Language 中文版

    AWK是一种非常实用的编程语言,它在文本处理和数据分析方面表现出色。它的特点是编写程序非常简单,即便是只有一两行的程序也能完成复杂的任务。AWK非常适合那些需要快速解决特定数据处理问题的场景。 ### AWK程序...

    awk+手册中文版.pdf

    awk 手册中文版.pdf awk 手册中文版由 bones7456 整理,是一本 awk 学习指引。该手册旨在解决的问题是awk 适合解决哪些问题?awk 常见的解题模式为何?通过一些具代表性的范例及其题解,帮助读者快速掌握 awk 解题...

    awk入门级教材awk入门awk入门

    ### awk入门级教材知识点详解 #### 一、awk简介 **awk** 是一种强大的文本处理工具,主要用于在一组文件上查找符合特定模式的行或字段,并执行相应的操作。它简化了数据选择和转换的过程,使其变得更为直观和简单...

    awk知识文档学习

    根据您提供的文件内容,这里总结了关于awk的一些知识点。 ### 1. Awk概述 Awk是一种编程语言,用于处理文本模式和报告生成。它主要用于Linux操作系统,并广泛应用于UNIX Shell编程中。Awk按照记录和字段的方式来...

    Effective awk Programming, 4th Edition[awk高效编程4版]

    《Effective awk Programming, 4th Edition》是一本深入讲解awk编程技术的专业书籍,旨在帮助读者提升在文本处理和数据操作中的效率。awk是Unix/Linux环境中的一款强大工具,它专门用于处理结构化的文本数据,如日志...

    awk使用手册-学习AWK首选

    《awk使用手册-学习AWK首选》是一本详细介绍Unix awk工具的指南,旨在帮助读者从基础到深入地掌握awk的使用。作者池中龙通过详实的解释和丰富的实例,为不同水平的用户提供全面的学习资源。 awk是Unix/Linux环境中...

    awk教程-awk教程.rar

    **awk命令详解** awk是一种强大的文本分析工具,广泛应用于Linux和Unix系统中,用于处理结构化数据,如CSV、TSV格式的文件。它通过模式匹配和动作来处理输入流中的每一行,允许用户定制复杂的文本处理逻辑。下面将...

    awk命令详解大全

    ### awk命令详解大全 #### 1. 什么是awk? awk是一种强大的文本处理工具,由Aho、Weinberg和Kernighan三位计算机科学家共同创造。它的名称来源于这三位创造者的姓氏首字母。awk的功能远超一般的文本处理工具,它...

    Shell AWK使用手册

    《Shell AWK使用手册》是为用户提供的一份详细的学习资源,涵盖了AWK在Unix环境中的应用和使用方法。AWK是一种强大的文本分析工具,它的名字来源于三位创始人: Alfred V. Aho, Peter J. Weinberger, 和 Brian W. ...

    awk教程入门到精通

    awk 教程入门到精通 awk 是一种功能强大的文本处理工具,它可以对文本进行处理、格式化和输出。awk 的主要用途是处理文本文件,提取和处理数据,生成报表等。下面是一份 awk 教程,从基础知识到高级应用,涵盖了 ...

    ass109.awk

    2. **运行awk脚本**:将生成的trace文件作为"ass109.awk" 的输入,执行命令如`awk -f ass109.awk trace_file_name.trc`,脚本会解析文件并输出关键信息。 3. **分析结果**:"ass109.awk" 可能会输出SQL语句、等待...

Global site tag (gtag.js) - Google Analytics