Ubuntu awk已被广泛应用但是也在不断的更新,这里介绍Ubuntu awk安装设置使用,帮助大家安装更新Ubuntu awk系统。为使读者快速掌握Ubuntu awk解题的模式及特性, 本手册系由一些较具代表性的范例及其题解所构成; 各范例由浅入深, 彼此间相互连贯,范例中并对所使用的Ubuntu awk语法及指令辅以必要的说明.
有关Ubuntu awk的指令, 函数,...等条列式的说明则收录于附录中, 以利读者往后撰写程序时查阅. 如此编排, 可让读者在短时间内顺畅地学会使用Ubuntu awk来解决问题. 建议读者循着范例上机实习, 以加深学习效果.
读者宜先具备下列背景 :
[a.] UNIX 环境下的简单操作及基本概念. 例如 : 文件编辑, 文件复制 及 管道, 输入/输出重定向 等概念 [b.] C 语言的基本语法及流程控制指令. (Ubuntu awk 指令并不多, 且其中之大部分与 C语言中之用法一致, 本手册中对该类指令之语法及特性不再加以繁冗的说明, 读者若欲深究,可自行翻阅相关的 C 语言书籍)
Ubuntu awk概述
为什么使用Ubuntu awk Ubuntu awk 是一种程序语言. 它具有一般程序语言常见的功能. 因Ubuntu awk语言具有某些特点, 如 : 使用直译器(Interpreter)不需先行编译; 变量无类型之分(Typeless), 可使用文字当数组的下标(Associative Array)...等特色.
因此, 使用Ubuntu awk撰写程序比起使用其它语言更简洁便利且节省时间. Ubuntu awk还具有一些内建功能, 使得Ubuntu awk擅于处理具数据行(Record), 字段(Field)型态的资料;
此外, Ubuntu awk内建有pipe的功能, 可将处理中的数据传送给外部的 Shell命令加以处理, 再将Shell命令处理后的数据传回Ubuntu awk程序, 这个特点也使得Ubuntu awk程序很容易使用系统资源.
由于Ubuntu awk具有上述特色, 在问题处理的过程中, 可轻易使用Ubuntu awk来撰写一些小工具; 这些小工具并非用来解决整个大问题,它们只扮演解决个别问题过程的某些角色, 可藉由Shell所提供的pipe将数据按需要传送给不同的小工具进行处理, 以解决整个大问题.
这种解题方式, 使得这些小工具可因不同需求而被重复组合及重用(reuse); 也可藉此方式来先行测试大程序原型的可行性与正确性, 将来若需要较高的执行速度时再用C语言来改写.这是Ubuntu awk最常被应用之处.
若能常常如此处理问题, 读者可以以更高的角度来思考抽象的问题, 而不会被拘泥于细节的部份. 本手册为Ubuntu awk入门的学习指引, 其内容将先强调如何撰写Ubuntu awk程序,未列入进一步解题方式的应用实例, 这部分将留待UNIX进阶手册中再行讨论.
如何取得Ubuntu awk 一般的UNIX操作系统, 本身即附有Ubuntu awk. 不同的UNIX操作系统 所附的Ubuntu awk其版本亦不尽相同. 若读者所使用的系统上未附有Ubuntu awk, 可透过 anonymous ftp 到下列地方取得 :
- phi.sinica.edu.tw:/pub/gnu
- ftp.edu.tw:/UNIX/gnu
- prep.ai.mit.edu:/pub/gnu
Ubuntu awk如何工作 为便于解释Ubuntu awk程序架构, 及有关术语(terminology), 先以一个员工薪资档(emp.dat ), 来加以介绍.
- A125 Jenny 100 210
- A341 Dan 110 215
- P158 Max 130 209
- P148 John 125 220
- A123 Linda 95 210
文件中各字段依次为 员工ID, 姓名, 薪资率,及 实际工时. ID中的第一码为部门识别码. "A","P"分别表示"组装"及"包装"部门. 本小节着重于说明Ubuntu awk程序的主要架构及工作原理, 并对一些重要的名词辅以必要的解释. 由这部分内容, 读者可体会出Ubuntu awk语言的主要精神及Ubuntu awk与其它语程序言的差异处. 为便于说明, 以条列方式说明于后.
名词定义
l 数据行: Ubuntu awk从数据文件上读取数据的基本单位.以上列文件emp.dat为例, Ubuntu awk读入的
- 第一笔数据行是 "A125 Jenny 100 210"
- 第二笔数据行是 "A341 Dan 110 215"
一般而言, 一个 数据行 就相当于数据文件上的一行资料. (参考 : 附录 B 内建变量"RS" )
l字段(Field) : 为数据行上被分隔开的子字符串. 以数据行"A125 Jenny 100 210"为例, 第一栏 第二栏 第三栏 第四栏 "A125" "Jenny" 100 210 一般是以空格符来分隔相邻的字段. ( 参考 : 附录 D 内建变量"FS" ) .
【编辑推荐】