`
swordinhand
  • 浏览: 312830 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

AWK入门1

阅读更多
    基本就是翻译一下http://www.theunixschool.com/p/awk-sed.html里面的内容
    首先看语法,awk的命令格式是 awk 'pattern{action}' file,表示awk对文件中所有符合pattern的hang执行action操作,如果pattern为空,则默认为对文件中的每一行进行操作,如果action为空,则默认为打印这一行。但是如果pattern和action都为空,那什么操作都不会做。
    其次看特殊变量,awk自动的把每行都分成若干列,默认的分隔符是空格和tab,可以通过-F指令来指定其他的分隔符,分割出来的列用$1, $2……来代表,$0则表示整行,还有个特殊符号NR表示行号。下面看几个例子:
    先创建一个用空格和tab分隔的文件file1
引用
$ cat file1
FirstName LastName Age
John  Banks 42
Neil  Santos    25
Sara Young 17 

    打印第二列的姓
引用
$ awk '{print $2}' file1
LastName
Banks
Santos
Young

    不想打印第一行的LastName这个提示
引用
$ awk 'NR!=1{print $2}' file1
Banks
Santos
Young

    打印整个文件
引用
$ awk '1' file1
FirstName LastName Age
John  Banks 42
Neil  Santos    25
Sara Young 17 

或者用另一种语法
引用
$ awk '{print $0}' file1
FirstName LastName Age
John  Banks 42
Neil  Santos    25
Sara Young 17 


现在创建一个用逗号做分隔符的文件,也就是csv格式的文件
引用
cat file2
First Name, Last Name, age
Barack,Obama,50
字段1,字段2,44


打印第二个字段
引用
$ awk -F, '{print $2}' file2
Last Name
Obama
字段2

还有另一种写法
引用
$ awk  '{print $2}' FS=, file2
Last Name
Obama
字段2

指定输出字段的分隔符
引用
$ awk  '{print $1, $3}' FS=, OFS="|" file2
First Name| age
Barack|50
字段1|44


    要注意的是,如果使用-F指定分隔符,那么要放在patter和action之前,如果使用FS指定分隔符,要放在patter和action之后,如果放错了会提示语法错误。FS和OFS所用的分隔符,在不会引起歧义或者转义的情况下,可以不加双引号。

分享到:
评论

相关推荐

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

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

    awk入门到精通.pdf

    《awk入门到精通》这本书是针对Linux环境下的awk语言学习指南,主要讲解了awk作为一款强大的文本处理工具的使用方法。awk是一种编程语言,它的特点是无需预编译,使用直译器,变量无类型,支持关联数组,这使得awk...

    awk入门最好的资料

    **awk入门最好的资料** 在IT领域,awk是一个强大的文本分析工具,它被广泛用于处理和解析日志文件、数据报告和其他结构化的文本信息。本文档是awk初学者的理想起点,通过深入浅出的方式,帮助读者快速掌握awk的基本...

    三剑客之awk入门指南

    AWK入门指南,正则表达式使用,高级输出,控制语句,语言详解

    Awk入门教程 《Awk A Tutorial and Introduction - by Bruce Barnett》

    Awk入门教程。作者 Bruce Barnett 注:英文版。以下是目录 Why learn AWK? Basic Structure Executing an AWK script Which shell to use with AWK? Dynamic Variables The Essential Syntax of AWK ...

    什么是awk(awk入门)

    ### awk入门详解 #### 一、awk简介 **awk** 是一种在 UNIX 和 Linux 系统上广泛使用的强大工具,它被设计用于处理文本数据,尤其是对于那些需要进行模式匹配和数据处理的任务非常有效。虽然 **awk** 的名字看起来...

    awk编程语言入门

    awk 编程语言入门 awk 编程语言是一种功能强大的命令行语言,主要用于处理文本数据。它可以读取文件或其他命令的输出,并根据条件进行查找和操作。awk 的设计思想很简单,但在实际操作中却很复杂。 awk 中的记录、...

    AWK入门教程和实战案例

    1. **AWK简介** - **执行gawk程序**:在Linux环境中,你可以通过命令行直接运行AWK脚本,例如`gawk 'script' file`,或者在脚本文件中写入AWK代码并使用`gawk -f scriptfile file`执行。gawk是AWK的一个实现,兼容...

    awk教程入门到精通

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

    emacs和Awk入门教程

    1. **模式匹配**:Awk基于输入行的模式进行处理,例如,`/模式/ {动作}`,找到匹配模式的行后执行相应的动作。 2. **内置变量**:预定义的变量如$0表示整行,$1至$NF表示字段值,NF表示字段数量,这些变量简化了数据...

    awk入门及提高.pdf

    awk是一种编程语言,常用于文本和数据处理,尤其擅长处理具有记录和字段型态的数据。它是一个解释器,无需提前编译。awk的变量无类型之分,可以将字符串作为数组的下标使用,这称为关联数组。这些特性使得使用awk...

    Linux下的AWK入门教程.docx

    Linux下的AWK入门教程 AWK 是一个强大的文本分析工具,相对于 grep 的查找,sed 的编辑,AWK 在其对数据分析并生成报告时,显得尤为强大。AWK 的名称得自于它的创始人 Alfred Aho、Peter Weinberger 和 Brian ...

    awk实例入门教程.pdf

    ### awk实例入门教程知识点解析 #### 一、awk语言简介 awk是一种专为文本处理设计的强大脚本语言,尤其适用于数据格式化、过滤和报告生成。它的命名来源于三位创造者:Alfred Aho、Peter Weinberger 和 Brian ...

    awk入门教程

    ### awk入门教程:掌握文本处理的强大工具 #### awk:一种被低估的文本处理语言 尽管在初见之下,awk这个名字或许并不吸引人,甚至有些怪异,但它却是一种功能强大且设计精巧的编程语言,专门用于文本处理和报告...

    awk脚本学习快速入门

    本资料包是针对awk脚本学习的快速入门教程,旨在帮助初学者快速掌握awk的基本用法和高级技巧。 一、awk简介 awk是由Aho、Weinberger和Kernighan三位大牛命名的(取首字母),最初设计用于处理结构化的文本数据,如...

    awk教程-awk教程.rar

    - **《awk 入门教程_阮一峰的网络日志》**:阮一峰老师的教程通常深入浅出,易于理解,适合快速了解awk的基本用法。 - **《在Window中使用 AWK》**:这本书可能详细介绍了如何在Windows环境下配置和使用awk,对于...

    初步介绍awk入门的一些基础知识

    ### awk基础知识详解 #### 一、awk概述与基础命令 **awk**是一种强大的文本处理工具,在Linux和Unix环境中被广泛使用。它最初由贝尔实验室开发,名称“awk”即为三位开发者Alfred Aho、Peter Weinberger 和 Brian ...

Global site tag (gtag.js) - Google Analytics