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. 【SPOJ】Longest Common Substring(后缀自动机)

    [SPOJ]Longest Common Substring(后缀自动机) 题面 Vjudge 题意:求两个串的最长公共子串 题解 \(SA\)的做法很简单 不再赘述 对于一个串构建\(SAM\) 另 ...

  2. 【BZOJ3436】小K的农场(差分约束)

    [BZOJ3436]小K的农场(差分约束) 题面 由于BZOJ巨慢无比,使用洛谷美滋滋 题解 傻逼差分约束题, 您要是不知道什么是差分约束 您就可以按下\(Ctrl+W\)了 #include< ...

  3. 平面图转对偶图(Bzoj1001:狼抓兔子)

    如果只会用最小割做这道题那就太菜辣 引入 来自某学长 平面图:在平面上边不相交的图(边可以绕着画) 那么平面图的边与边就围成了许多个区域(这与你画图的方式有关) 定义对偶图:把相邻的两个区域连上边,形 ...

  4. 好用的sitemap生成器—GY SiteMap

    好用的sitemap生成器-GY SiteMap 下载地址:http://www.wyxxw.cn/download-detail-6-8-14.html 网站地图可以更好的帮助搜索引擎抓取.收录网站 ...

  5. Oracle数据库中in()参数超过一千报错代码报错

    转载请注明出处:http://www.cnblogs.com/xunzhaorendaxia/p/8570604.html 解决方案将select * from tablename where fie ...

  6. spring整合mybatis(hibernate)配置

    一.Spring整合配置Mybatis spring整合mybatis可以不需要mybatis-config.xml配置文件,直接通过spring配置文件一步到位.一般需要具备如下几个基本配置. 1. ...

  7. AngularJS中实现服务端分页

    这个教程将介绍在AngularJS应用中的服务端分页处理.在任何涉及到列表或表格数据的应用中都可能会用到分页. 概念 当我们处理异步分页时,每次只从服务器上获取一页数据.也就是说当用户点击第二页,就只 ...

  8. 9.python异常处理

    常见异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x FileNotFoundError 输入/输出异常:基本上是无法打开文件 ImportErro ...

  9. 删除项目中的.pyc文件

    在编写python项目的时候,往往会生成很多的.pyc文件,但是在我们提交代码的时候这些.pyc文件又是不必要的,所以需要对项目里面的.pyc文件进行清理.再此,经过我的查阅资料和尝试,分享出以下方法 ...

  10. serializeArray()获取的表单参数转化成json格式的对象

    目标:将serializeArray()这个方法获取的表单对象  转换成json格式 function serializeObject(){ //easyui提交表单 $('#form').form( ...