awk学习——基础篇.pdfVIP

  1. 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
  2. 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
  3. 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
awk学习——基础篇

Awk 学习笔记 这是我几天来学习AWK,记录的知识点。 教材:《UNIX she 范例精解》(第4 版)【美】E ie Quigley著 李化 张国强译(清华大学出版社 2007年 5月) 参考: /software/gawk/manual/gawk.html#Preface /content/manage/ringkee/awk.htm 不足之处请多多指教 1.awk简介 1. awk 以记录和字段的方式来查看文本文件 2. 和其他编程语言一样,awk包含变量、条件和循环 3. awk 能够进行运算和字符串操作 4. awk 能够生成格式化的报表数据 2.awk概述 awk程序 awk命令、括在括号(或写在文件)中的程序指令以及输入文件的文件名几个部分组成。如果没有输入文件, 输入则来自于标准输入。 awk指令由模式、操作或者模式与操作的组合组成。模式是由某种类型的表达式组成的语句。如果某个表达式中没有 出现关键在if,但实际在计算时却暗含if这个词,那么这个表达式就是模式。操作由括在大括号中的一条或多条语句组成, 语句之间用分号或者换行符隔开。模式不能括在大括号中,模式由包括在两个正斜杠之间的正则表达式、一个或多个 awk操作 符组成的表达式组成。 格式: awk /search pattern1/ {Actions} /search pattern2/ {Actions} file 3.工作原理 1. awk使用一行作为输入(通过文件或者管道),并将这一行赋给内部变量$0 2. 行被空格分解为字段(单词),每一个字段存储在已编号的变量中,从$1开始。(awk 的内部变量 FS用来确定字段 的分隔符。初始时,为空格,包含制表符和空格符) 3. 对于一行,按照给定的正则表达式的顺序进行匹配,如果匹配则执行对应的Action ,如果没有匹配上则不执行任何 动作 ,Search Pattern 和 Action 是可选的,但是必须提供其中一个 。如果 Search Pattern 未提供, 则对所有的输入行执行Action 操作。如果Action 未提供,则默认打印出该行的数据 。{} 这种 Action 不做 任何事情,和未提供的 Action 的工作方式不一样 4. 打印字段,用 print、printf、sprintf,格式: { print $1, $3 } 内部变量output fie d separator (OFS),默认为空格,$n之间的逗号被OFS中的字符替换。 5. 输出之后,从文件中另取一行,并将其复制到$0 中,覆盖原来的内容。重复进行…… 4.格式化输出 print函数 print函数用于打印不需要特别编排格式的简单输出。 为复杂的格式编排则要使用 printf和 sprintf。若懂得C 语言,则也一定懂得如何使用 printf和 sprintf。 print函数的的转义序列 /b 退格 /f 换页 /n 换行 /r 回车 /t 制表符 /047 八进制值47,即单引号 /c c代表任意其他字符 打印数字时,可能需要控制数字的格式。可以通过 printf来实现,但是通过设置一个特殊的变量OFMT,是用 print函数也可以控制数字打印格式。OFMT默认为“%.6gd”,表示只打印小数部分的前6位。 例 1: long@long-Ubuntu:~$ awk BEGIN { OFMT=%.2f; print 1.2456789, 12E-2 } 1.25 0.12 printf函数 printf函数返回一个带格式的字符串给标准输出,如同C语言中的 printf语句。printf语句包括一个加引号的 控制串,控制串中可能嵌套有若干格式说明和修饰符。控制串后面跟逗号,之后是一列由逗号分隔的表达式。与 print函数 不同的是,printf函数不会在行尾自动换行。若要换行,在控制串中提供转义字符\n。每个百分号和格式说明都必须有一个 对应的变量。要打印百分号就必须在控制串中给出两个百分号。 printf函数的转义字符 c 字符 s

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档