`
san_yun
  • 浏览: 2652893 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

awk 使用小结

 
阅读更多

http://sunting.blog.51cto.com/1244382/281472

 

awk 小结

awk 的功能非常强大,它是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支 持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk的处理文 本和数据的方式是这样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作。如果没有指定处理动作,则把匹配 的行显示到标准输出 (屏幕),如果没有指定模式,则所有被操作所指定的行都被处理。

awk 有多个内置变量,下面我们以几个常用的内置变量来学习一下awk。

1.awk 会将正在处理的文件名放在一个内置变FILENAME里,这是我们在脚本中提取文件名非常的方便。FS 是字段分割符(默认为空格),OFS是输出字段(默认为一个空格),它的格式是 –v FS=:能用 –F : 指提取文件时以:段分割符,–v FS=+++++ 指输出时以++++为段分割符

clip_image002

clip_image004

clip_image006

为了实验方便,我们现在把passwd shadow 的前8行追加到两个文件中

clip_image008

clip_image010

clip_image012

2 在awk中 NF 显示段数,可以使用 ‘{print $NF }’ 打印文件一列, $(NF -1) 倒数第二段。

clip_image013

clip_image015

3 FNR 当前文件所处理的行号,NR 若处理多个文件,就把所以文件数相加,累加显示

clip_image017

4 RS 默认的换行符 ORS 定义输出换行符

clip_image019

clip_image021

5 awk 支持正则表达式,匹配表达式,关系表达式

关系表达式:可以对关系运算符进行操作,可以是字符串或数字的比较,如$2>$1 选择第二个字段比第一个字段长的行。

模式匹配表达式:用运算符~(匹配)和~!(不匹配)。

BEGIN:是让用户指定在第一条输入记录被处理之前所发生的动作,通常可在这里设置全局变量。

END: 让用户在最后一条输入记录被读取之后发生的动作。

clip_image023

clip_image025

提取出文件中以,mail开头的行

clip_image027

提取出以mail或以bin开头的行

clip_image029

提取出以:为列分割符,第三列大于500的行

clip_image031

提取出第一列中 包含Root 或root 的行

clip_image033

提取出第一列中不包含root的行

clip_image035

把文件中第一列替换成root的

clip_image037

提取第一列等于root的行

clip_image039

/root/./mail/ 提取从root到mail之间的行

clip_image041

在awk中,ARGC 可以显示参数个数,ARGV 数组变量用来存储参数,从0开始

clip_image043

使用getline获取前面结果,

clip_image045

printf 定义格式化的输出,%3f 前面空三个字符,%3.1f 显示小数点后的一位,%3.2f 显示小数点以后的两位 可以四舍五入,%e 显示为科学计数法,%c显示为ASCII码

clip_image047

分享到:
评论

相关推荐

    awk详细用法小结awk awk

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

    awk用法小结--有关awk的材料

    ### awk用法小结 #### 一、awk简介与特点 **awk** 是一款非常强大的文本处理工具,尤其适用于处理结构化的文本文件,比如那些按照行和列组织的数据。相较于 **sed**,**awk** 提供了更为丰富的编程功能,能够进行...

    sed和awk使用实例

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

    shell awk脚本总结.txt

    ### Shell Awk脚本知识点总结 #### 一、Shell与Awk在文本处理中的应用 在日常工作中,尤其是在技术支持领域,经常会遇到需要处理文本文件的情况。无论是哪种类型的数据库,最终都可以将其导出为文本格式,这为我们...

    awk 使用手册

    默认情况下,`awk`使用空格或制表符作为字段分隔符(Field Separator, FS)。可以通过内置变量`FS`来改变这个行为,例如: ```bash awk -F ',' '{ print $1 }' file.csv ``` 这会将逗号作为字段分隔符,打印CSV文件...

    awk实例详解——Unix下awk的使用

    默认情况下,`awk`使用空格或制表符作为字段分隔符(Field Separator, FS)。但可以通过`-F`选项或内部变量`FS`自定义分隔符,如`awk -F: '{print $1}'`以冒号为分隔符打印第一列。 **3. 内置变量** `awk`提供了...

    awk小结(by ruson)

    根据提供的文件信息,以下是对“awk小结(by ruson)”中提到的关键知识点的详细解释: ### 一、awk简介 #### 1. awk是什么? - **awk** 是一种强大的文本处理工具,在Linux和Unix环境中广泛使用。 - 它可以进行...

    AWK使用手册 介绍在linux如何使用awk工具

    ### AWK使用手册知识点 #### 一、AWK简介与适用场景 - **AWK**是一种专门用于文本处理和报告生成的脚本语言,在Linux环境下非常流行。 - **适用问题**:AWK适用于处理结构化的文本文件,尤其擅长处理那些包含特定...

    关于awk的用法总结

    awk是Linux/Unix环境下强大的文本分析工具,常用于处理结构化的数据文件,如CSV、TSV格式或由制表符分隔的文件。..."awk小结(by ruson).pdf"文件应该包含了更多awk的实用技巧和实例,值得仔细研读。

    awk用法小结

    ### awk用法小结 本篇文章旨在为初学者提供关于`awk`命令的基本用法介绍。`awk`是一种强大的文本处理工具,在Linux和Unix环境中非常常用。它支持数据的提取、处理以及报告生成等操作。下面我们将根据提供的部分示例...

    Linux主要shell命令、sed、awk使用详解

    Linux 主要shell命令、sed、awk使用详解 Linux 主要shell命令详解 ...总结来说,本章节主要讲述了 shell 的工作原理、shell 的种类、shell 的一般操作及 Bash 的特性,并对 sed 编辑器和 awk 使用进行了详细的讲解。

    Unix awk 使用手册

    ### Unix awk 使用手册详解 #### 一、awk简介 **awk** 是一款强大的文本处理工具,在 Unix 和类 Unix 操作系统中广泛使用。不同于 sed 和 grep 这样的文本处理工具,awk 提供了更为丰富的功能集,使得它可以完成...

    AWK文件处理总结

    ### AWK 文件处理总结 #### 一、AWK 入门篇 AWK 是一种强大的文本处理工具,常用于Linux/Unix环境下。它允许用户通过简单的脚本语言来进行复杂的文本处理任务。 **基本命令格式**: ```bash awk 'pattern { action...

    Awk命令使用实例.docx

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

    awk用法小结-unix

    默认情况下,awk使用空格或连续的空格作为字段分隔符,但可以通过设置`FS`变量自定义字段分隔符。 在示例 `/etc/passwd` 文件中,每个字段由分号分隔,记录包括用户名、加密密码、用户ID、组ID、注释、家目录和...

    The AWK Programming Language 中文版

    在运行AWK程序时,通常会使用如下形式的命令: ```bash awk 'pattern {action}' input-file ``` 这里,`pattern` 是一个可选的条件表达式,用于筛选符合条件的记录(行),而 `{action}` 是当模式匹配时将执行的...

    grep,sed, awk 总结

    下面将详细总结这三个工具的使用方法和相关知识点。 ### grep grep是用于搜索文本的工具,支持正则表达式,能从文件中找出匹配特定模式的文本行,并将其打印出来。grep的基本用法为: ``` grep [选项] '模式' ...

    awk知识文档学习

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

Global site tag (gtag.js) - Google Analytics