`
guanjh
  • 浏览: 232932 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

AWK

阅读更多
AWK用途:
AWK 是一种用于处理文本的编程语言工具。它允许您创建简短的程序,这些程序读取输入文件、为数据排序、处理数据、对输入执行计算以及生成报表,还有无数其他的功能。
 
命令方式:
但命令的语法始终是:
awk '{pattern + action}' {filenames}
  其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。花括号 ({}) 不需要在程序中始终出现,但它们用于根据特定的模式对一系列指令进行分组。
 
分隔符:
默认的字段分隔符是空格或制表符(多个空格仍然作为一个分隔符),而记录的分隔符是换行。可以使用“-F”将分隔符从空格改为任何其它字符。 如下:
 
awk -F"\|" '{print $22}' ./source/M0401420040831000001.AVL|sort -u
 
用法:
46012 DULANEY EVAN MOBILE AL
46013 DURHAM JEFF MOBILE AL
46015 STEEN BILL MOBILE AL
  当 AWK 读取输入内容时,整条记录被分配给变量 $0。每个字段以字段分隔符分开,被分配给变量 $1、$2、$3 等等。一行在本质上可以包含无数个字段,通过字段号来访问每个字段。因此,命令
awk '{print $1,$2,$3,$4,$5}' names
 
将会产生的打印输出是
46012 DULANEY EVAN MOBILE AL
46013 DURHAM JEFF MOBILE AL
46015 STEEN BILL MOBILE AL
 
使用模式:
模式匹配的最简单形式是搜索,其中要匹配的项目被包含在斜线 (/pattern/) 中。
例如:$ awk '/AL/ {print $3,$2}' emp_names
对同一数据集的多个命令可以用分号 (;) 分隔开。例如,在一行中打印姓名,而在另一行中打印城市和州名:
$ awk '/AL/ {print $3,$2 ; print $4,$5}' emp_names
 
另一方面,如果分别给出两个打印语句,则会产生完全不同的结果:
$ awk '/AL/ {print $3,$2} {print $4,$5}' emp_names
 
只有在列表中找到 AL 时才会给出字段三和字段二。但是,字段四和字段五是无条件的,始终打印它们。只有第一组花括号中的命令对前面紧邻的命令 (/AL/) 起作用。
 
通过连续设置多项标准并用管道 (|) 符号将其分隔开,您可以一次搜索多个模式匹配:
$ awk '/AL|IN/' emp_names
 
 
 
分享到:
评论

相关推荐

    awk入门到精通.pdf

    《awk入门到精通》这本书是一本专为学习awk语言设计的指南,主要关注awk适用的问题类型和常用的解题策略。作者希望通过一系列具有代表性的实例,帮助读者快速掌握awk的使用技巧和特性。书中实例逐步深入,互相连贯,...

    ass109.awk

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

    Sed与Awk (中文版)

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

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

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

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

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

    The AWK Programming Language 中文版

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

    awk详细用法小结awk awk

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

    MOXA_AWK-3121配置方法及要点说明

    MOXA AWK-3121 配置方法及要点说明 MOXA AWK-3121 是一种工业级无线设备,具有 web 功能配置、IP 网络参数设置、工作模式选择、功率增强等特点。本文将详细介绍 MOXA AWK-3121 的配置方法及要点说明。 一、Web ...

    awk参考资料下载awk

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

    SED与AWK 高清第三版

    《SED与AWK 高清第三版》是一本专注于Linux系统中强大文本处理工具sed和awk的教程。在Linux环境中,sed和awk是不可或缺的工具,它们能够高效地处理大量文本数据,进行搜索、替换、格式化等操作,极大地提高了运维...

    Oracle ass.awk工具

    ass.awk工具用在数据库hang住时分析收集到的systemstate所用,可以清晰明了的查看systemstate中的信息; 命令简单: $ awk -f ass1033.awk [trace_name_file] 在系统hung的时候,systemstate基本等同于hanganalyze...

    awk教程-awk教程.rar

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

    AWK实例教程 AWK实例教程中文版

    ### AWK实例教程知识点解析 #### 一、AWK简介及背景 - **AWK**是一种功能强大的文本处理工具,最初由贝尔实验室的Alfred Aho、Peter Weinberger和Brian Kernighan共同开发,因此得名AWK。尽管这个名字听起来有些...

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

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

    sed and awk 101 hacks.pdf

    Sed和Awk是UNIX和Linux系统中极为重要的流编辑器和文本处理工具,它们能够通过简单的命令或脚本高效处理文本文件,实现复杂的文本转换和报告生成。接下来,我们将根据提供的文件内容详细地说明Sed和Awk的关键知识点...

    Sed与awk第二版(中文高清版)

    在处理文本数据时,Sed和awk是两个非常强大的工具。它们广泛应用于Unix和类Unix系统中,比如Linux。Sed,即流编辑器,是一个非交互式的文本处理工具,它能够执行文本替换、插入、删除等操作,而awk则是一个强大的...

Global site tag (gtag.js) - Google Analytics