shell三剑客之awk

学习的内容来自于Linux Shell脚本攻略(2)

内容只做了简单的记录,方便自己学习

shell 命令查询地址:http://man.linuxde.net/

awk

awk的灵活性十分的高,它是一款用于设计数据流的工具,最方便的操作是对数据的行和列的操作

基本结构如下

awk 'BEGIN {print 'start'} pattern {commands } END{print 'end'} file

工作原理:

1)执行BEGIN{commadns}语句块中的语句

2)从文件或stdin中读取一行,然后执行pattern{commands}。重复这个过程直到文件全部被读取完

  1. 当读至输入流末尾时,执行END{commadns}语块

Begin语句块在awk开始从输入流中读取之前就已经被执行,这是一个可以选择的语块,当我们需要初始化我们的输出内容的时候,就可以选择比如表单的表头

END语句块是在awk从输入流中读取完所有行之后执行的,这也是一个可以选择的语句块

pattern 语句块 默认执行{print} 即打印读取到的每一行

每读取一行,awk就会检查该行和提供的样式是否匹配,如果匹配则执行{}中的语句

1533176791822.png
1533176933033.png

awk的特殊变量

NR:表示记录数量,在执行过程中对应于当前行号

NF:表示字段数量(变量) 在执行过程中对应于当前行的字段数

$0:这个变量包含执行过程中当前行的文本内容

$1:这个变量包含第一个字段的文本内容

$2:这个变量包含第二个字段的文本内容

1533177674441.png

这里可以看他,他会把,左右的字段判断成为一个字段

$NF 表示这一行的最后一个字段 ${NF-1}倒数第二个字段

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • awk:报告生成器,格式化文本输出 内容: awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 a...
    BossHuang阅读 1,473评论 0 9
  • 本章主要学习内容awk介绍 awk基本用法 awk变量 awk格式化 awk操作符 awk条件判断 a...
    楠人帮阅读 1,297评论 0 8
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,282评论 2 25
  • Linux指令中文说明传送入口 整理自Linux指令中文说明 文本和数据进行处理的编程语言awk 是一种编程语言,...
    释闲人阅读 2,161评论 1 6
  • 春节将至,各家公司都开启了年会模式,每次在朋友圈看到别人家的年会,都会对自己家的年会充满期待。那怎么样才能办好一场...
    肥羊君_阅读 3,428评论 1 7