`

数据处理awk命令使用

 
阅读更多

 

 

 awk 是数据处理工具,他将一行数据分成多个字段来处理;

 默认:

 awk用空格来分割(分隔符可以自定-F)每一行数据,分割后用$N来取出分割后的每一个字段,

 用NF获取一共有多少字段(一般用这个可以过滤掉一些有缺陷的数据),

 awk默认每次读取到"\n"即回车为一行数据,可以用RS来自定义 

 分割后的数据各个字段输出默认为space来分割,可以用OFS来确定输出的分隔符

 

 可以用NR拿到数据处理到哪一行了

 可以用FNR获取数据总的记录数 

 可以读从哪个行到哪一行的数据: awk 'NR==10,NR==15{print}' a

 然后可以通过{print}来打印数据到控制台或者重定向到文件中 

 

 

1 语法格式 

  awk [-参数 变量] 'BEGIN{初始化}条件类型1{动作1}条件类型2{动作2}。。。。END{后处理}'

其中:BEGIN和END中的语句分别在开始读取文件(in_file)之前和读取完文件之后发挥作用,可以理解为初始化和扫尾。

2 参数说明:

  -F re:允许awk更改其字段分隔符

   -v var=$v 把v值赋值给var,如果有多个变量要赋值,那么就写多个-v,每个变量赋值对应一个-v

    e.g. 要打印文件a的第num行到num+num1行之间的行, 

      awk -v num=$num -v num1=$num1 'NR==num,NR==num+num1{print}' a 

3 内置变量

NR    已经读出的记录数

FNR    当前文件的记录数

FS    输入字段分隔符(缺省为:space:),相当于-F选项

OFS输出字段分隔符(缺省为:space:)

RS:输入记录分隔符,缺省为"\n"

ORS:输出记录分隔符,缺省为换行符,控制每个print语句后的输出符号

 

4例子:

1 读取两个文件

awk '{if(ARGIND==1){print "处理a文件"} if(ARGIND==2){print "处理b文件"}}' a b

2 控制读取到那个文件

 awk 'NR==FNR{print "处理文件a"} NR > FNR{print "处理文件b"}' a b

3 处理从哪一行到哪一行

awk 'NR==10,NR==15{print}' a

4 分隔符使用

awk -F ':' '{print}' a    和   awk 'BEGIN{FS=":"}{print}' a 是一样的

5 行分隔符使用: 

 awk -F ':' 'BEGIN{OFS=";"}{print $1,$2,$3}' b

6 打印当前记录字段个数

awk -F ':' '{print NF}' b

7 处理数据不规则的行

awk -F ':' '{if (NF == 3)print}' b

8 行分隔符使用

awk 'BEGIN{ RS = ";" } {print}' c 

 

小注释:awk把分割后的第1、2、3个字段用$1,$2,$3...表示,$0表示整个记录(一般就是一整行))

 

单引号处理:遇到单引号要用\ 转义,为了说明 \ 是转义字符要使用 ''单引号括起来,然后后面加一个单引号,如下:

awk -F ''\''' '{print $2}{print NF}' sucess.txt ;  

 

9 例子字符串连接: 

Ent_ID  企业 ID

ID  专利 ID

EntName  企业名称

IsDownDetail

 

 

awk -F "  " '{a="private" ;b=$1; c=(a" "b " // " $2 " ; ");print c }' zhuanli.txt  

 

输出:

private Ent_ID // 企业 ID  ; 

private ID // 专利 ID  ; 

private EntName // 企业名称  ;

 

 

 

 

 

分享到:
评论

相关推荐

    awk命令详解大全

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

    Linux_awk命令详解

    Linux中的awk命令是一个强大的文本分析工具,用于处理和解析文件中的数据。awk的名称来源于它的创始人: Alfred V. Aho, Peter J. Weinberger, 和 Brian W. Kernighan。awk有三个主要版本:awk、nawk(new awk)和...

    Linuxawk命令详解[归类].pdf

    Linux awk 命令是 Unix 环境中的一种功能强大的文本处理工具,由 Bell Labs 的 Alfred Aho、Peter Weinberger 和 Brian Kernighan 于 1977 年开发。awk 命令的主要功能是从文件或字符串中基于指定规则来分解抽取信息...

    AWK命令详解 sed命令详解

    ### AWK命令详解 **AWK** 是一种强大的文本处理工具,在 Unix 和类 Unix 操作系统中非常常见。它能够方便地对文本进行格式化、提取数据或执行其他操作。AWK 的名称来源于其创造者 Alfred Aho、Peter Weinberger 和 ...

    linux awk 命令大全

    Linux中的`awk`命令是一个强大的文本分析工具,它...`awk`的强大之处在于它结合了模式匹配和编程能力,使得在命令行环境中进行复杂的数据处理成为可能。熟练掌握`awk`命令对于Linux系统管理和数据分析工作非常有用。

    awk命令详解

    * 使用 AWK 需要指定 pattern 和 action,pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令。 * AWK 可以以命令行方式、shell 脚本方式和将所有的 AWK 命令插入一个单独文件...

    AWK命令详解

    用户可以通过简单的命令行使用AWK进行快速的数据处理,而不必经历C语言或C++那样的编译过程。AWK的解释执行机制使其能够无缝集成到shell脚本中,大大提高了开发效率。 **3. 易于获取** AWK作为标准Unix工具的一...

    linu awk命令详解_linuawk命令详解_

    通过熟练掌握awk命令,Linux用户能够高效地处理日志文件、进行数据分析,甚至编写简单的脚本。在深入学习awk时,理解其工作原理、模式匹配机制以及如何编写复杂的动作,将极大地提升你在Linux环境中的工作效率。对于...

    linux-shell脚本命令:awk命令简介

    Linux系统中的awk命令是一个功能强大的文本处理工具,它可以对输入(通常是文件)进行模式扫描和处理。...通过学习和熟练运用awk命令,开发者能够有效地进行数据处理和自动化任务,大大提升工作效率。

    Awk命令使用实例.docx

    ### Awk命令使用详解 #### 一、Awk简介 Awk是一种强大的文本处理语言,专为高级文本处理和数据分析而设计。它被广泛应用于快速编写脚本来处理文本文件,如日志文件、配置文件等。Awk的核心功能在于能够方便地对文本...

    LINUX下awk命令详解

    `awk` 是一个功能强大的文本处理工具,在 Unix 和类 Unix 操作系统(如 Linux)中被广泛使用。它不仅可以进行模式匹配,还能执行复杂的文本处理任务。本文将详细介绍 `awk` 的各种用法,并通过实际案例来加深理解。 ...

    grep,sed,awk命令实例大练习

    ### grep、sed、awk命令实例大练习 在Linux或Unix环境中,`grep`、`sed`和`awk`是三个非常强大的文本处理工具。通过掌握这些工具的基本用法及高级功能,用户可以高效地处理各种文本文件。下面将详细介绍如何使用...

    awk命令详解 包括详细的组合结构

    awk 是一个强大的文本分析工具,常用于处理结构化数据,如CSV、日志文件等。在Linux和Unix环境中,awk命令被广泛使用。本篇文章将详细介绍awk命令的使用...学习和熟练掌握awk命令,可以极大地提高处理文本数据的效率。

    awk 命令简明教程

    综上所述,awk作为一种强大的文本处理工具,不仅功能全面,且使用灵活,适用于各种文本数据处理需求。无论是简单的文本筛选还是复杂的数据分析,awk都能提供高效的解决方案,是UNIX系统中不可或缺的强大工具之一。

    awk命令简介

    ### awk命令简介与应用知识点详解 #### 一、awk命令概述 `awk`是一种强大的文本处理工具,在Linux和Unix环境中非常常见。它主要用于在数据文件或其他流中执行模式扫描和处理,可以用来格式化文本输出,执行计算,...

    sed和awk使用实例

    Sed 和 Awk 是两种强大的命令行工具,在 Unix 和 Linux 系统中广泛应用于文本处理和数据处理。本文将通过一些实例来展示 Sed 和 Awk 的使用场景和方法。 一、sed 使用实例 1. 删除 login.php 中的 ^M sed -i 's/...

    AWK命令资源收集.rar

    - **Awk**:表示这个资源主要围绕AWK命令展开。 - **通用**:暗示这些例子和教程适用于广泛的场景,不仅限于特定的应用。 - **线程实例**:提醒我们这些例子可能涉及并发处理,尤其是在处理大数据时。 - **How ...

    awk学习awk学习awk学习awk学习

    3. **文本数据处理**: 如需对CSV或TTSV等格式的文本数据进行筛选、排序或转换,awk都是非常有效的工具。 4. **网络监控**: 在实时监控网络流量或服务器状态时,结合其他工具使用awk能够高效完成任务。 ### 总结 ...

Global site tag (gtag.js) - Google Analytics