Ubuntu awk概述内建有pipe的功能

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"  

相关推荐