1.awk 'parttern {action}' filename

从文件中逐行读取并匹配parttern,若匹配成功执行action否则读取下一行.

parttern和action都可选,若省略parttern则对每行都执行action.BEGIN和END不能省略action.

parttern {action}语句,及action内的语句通常用换行符分隔,若干语句在同一行时用分号分隔.

左大括号{必须与parttern在同一行,右大括号}位置不限.其中的空行被忽略.

空格与制表符可以成对出现在运算符与操作数周围以提高可读性.

注释任一行.

2.当前输入行的第一个字段为$1,第二个字段为$2...当前行为$0.字段默认分隔符为空格或制表符.

3.在print语句中默认以逗号分隔表达式,{print $1,$2}

4.内置变量不需通过$引用

NF:Number of Field,每行的字段数.$NF可以表示最后一个字段值.

NR:Number of Record,到目前为止读取到的记录(行)数.

FNR:当前输入文件的记录个数.

FS:Field Separator,(输入行)字段分隔符.默认为空格.

OFS:Output Field Separator,输出行字段分隔符.默认为换行符(\n).

RS:Record Separator:输入行分隔符.默认为换行符.

ORS:Output Record Separator:输出行分隔符.默认为空格.

ARGC:命令行参数的个数.

ARGV:命令行参数数组.

FILLENAME:当前输入文件名.

OFMT:数值的输出格式,默认为%.6g

RLENGTH:被函数匹配的字符串的长度.

RSTART:被函数匹配的字符串的开始.

SUBSEP:下标分隔符.默认为\034.

5.parttern汇总

BEGIN {action}:在输入行被读取之前执行action一次.

END {action}:在输入行读取完成之后执行action一次.

expression {action}:若expression为真则输入行执行action,否则跳过.

/regexpr/ {action}:若输入行匹配正则表达式则执行action,否则跳过.

compexpr {action}:若复合表达式(由&&、||、!、())为真则输入行执行action,否则跳过.

parttern1,parttern2 {action}:对匹配parttern1开始到匹配parttern2结束的其间所有行(含这两行)执行action.若parttern2未匹配则从parttern1到末行执行action.

BEGIN和END不与其他模式组合,一个范围模式不能是其他模式的一部分.

6.BEGIN常用来更改FS,或打印标题.END用来输出计算结果.

7.比较运算符

< 小于

<= 小于等于

== 等于

!= 不等于

大于

= 大于等于

~ 匹配

!~ 不匹配

8.字符串匹配模式:测试一个字符串是否包含一段可以被正则表达式匹配的子字符串.

/regexpr/:当前输入行包含一段能够被rexexpr匹配的子字符串时该模式被匹配.

expression ~ /regexpr/:若expression的字符串值包含一段能被rexexpr匹配的子字符串时该模式被匹配.

expression !~ /regexpr/:若expression的字符串值不包含一段能被rexexpr匹配的子字符串时该模式被匹配.

9.action汇总

expression:常量,变量,赋值,函数调用等

print expression-list

printf(format,expression-list)

if (expression) statements

if (expression) statements else statements

for (expression1;expression2;expression3) statements

for (expression in array) statements

while (expression) statements

do statements while (expression)

break

continue

10.内建算术函数--P36未完待续

AWK读书笔记的更多相关文章

  1. Java并发编程的艺术读书笔记(1)-并发编程的挑战

    title: Java并发编程的艺术读书笔记(1)-并发编程的挑战 date: 2017-05-03 23:28:45 tags: ['多线程','并发'] categories: 读书笔记 --- ...

  2. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  3. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  4. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  5. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  6. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  7. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  8. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

随机推荐

  1. [POJ2115]C Looooops 拓展欧几里得

    原题入口 这个题要找到本身的模型就行了 a+c*x=b(mod 2k) ->  c*x+2k*y=b-a 求这个方程对于x,y有没有整数解. 这个只要学过拓展欧几里得(好像有的叫扩展欧几里德QA ...

  2. SPOJ3267:D-query

    题面 SPOJ3267 Sol 给定\(N\)个正整数构成的序列,将对于指定的闭区间查询其区间内的不同的数的个数 主席树 不是权值线段树 维护位置 如果插入一个数时发现之前有过了 那么修改当前的,那个 ...

  3. 严格次小生成树(Bzoj1977:[Beijing2010组队]次小生成树)

    非严格次小生成树 很简单,先做最小生成树 然后枚举没加入的边加入,替换掉这个环内最大的边 最后取\(min\) 严格次小生成树 还是一样的 可以考虑维护一个严格次大值 最大值和枚举的边相同就替换次大值 ...

  4. SAPUI5 freestyle vs SAP Fiori Elements —— 两种开发SAP UI5 Apps的方式对比

    概述 目前SAPUI5 SDK 提供了两种方式来开发一个SAPUI5 App.一种方式是传统的SAPUI5开发方式,一种是利用SAP Fiori Elements通过模板快速构建应用的方式. 本文简单 ...

  5. 11.C++-临时对象分析

    首先来参考以下代码: #include <stdio.h> class Test { int mi; public: Test(int i) { mi = i; } Test() { Te ...

  6. MongoDB起步

    1.Mongodb基本概念和SQL的区别:SQL术语        MongoDB术语database    databasetable        collectionrow        doc ...

  7. 网络通信 --> 同步、异步、阻塞与非阻塞介绍

    同步.异步.阻塞与非阻塞介绍 聊聊同步.异步.阻塞与非阻塞

  8. Python第二话 初识复杂数据类型(list、dictionary、tuple)

    上一篇我们简单认识了数据类型:数字number和字符串string,这篇我们就来隆重介绍一下重量级的数据类型:列表list.字典dictionary和元组tuple. 一.列表List: ①列表是什么 ...

  9. CentOS 6.5 通过命令行安装发送邮件

    1.安装sendmail: yum install sendmail 2.安装mailx: yum install mailx -y 3.编辑发送的配置文件: vi /etc/mail.rc #在最后 ...

  10. New UWP Community Toolkit - Staggered panel

    概述 前面 New UWP Community Toolkit 文章中,我们对 2.2.0 版本的重要更新做了简单回顾,其中简单介绍了 Staggered panel,本篇我们结合代码详细讲解  St ...