欢迎 510814171 加入本站!
 免费注册  用户登陆  汇款方式  汇款确认  产品报价  联系我们  帮助中心
加入收藏
设为首页
会员体系
申请VIP
网站首页 光盘超市 软件下载 技术文章 专题 用户中心 VIP会员 技术论坛 网站留言 娱乐中心 卓越资源
今天是:2008年11月20日 星期四  您现在位于: 首页 → 技术文章 → GAWK 手册(二)
   GAWK 手册(二)
作者:Wing  出处:Unix爱好者家园unix-cd.com  更新时间: 2005年12月14日 

第二章 简介

  gawk 的主要功能是针对档案的每一行(line)搜寻指定的 patterns 。当一行里有符合指定的 patterns,gawk 就会在此一行执行被指定的 actions。 gawk 依此方式处理输入档案的每一行直到输入档案结束。

  gawk 程式是由很多的 pattern 与 action 所组成,action 写在大括号 { } 里面,一个pattern後面就跟著一个action。整个 gawk 程式会像下面的样子:


pattern {action} 
pattern {action} 

  在 gawk 程式里面的规则,pattern 或 action 能够被省略,但是两个不能同时被省略。如果 pattern 被省略,对於输入档里面的每一行,action 都会被执行。如果 action 被省略,内定的 action则会印出所有符合 pattern 的输入行。

2.1 如何执行gawk程式

  基本上,有2个方法可以执行gawk程式。

  如果 gawk 程式很短,则 gawk 可以直接写在 command line,如下所示:

gawk 'program' input-file1 input-file2 ... 

  其中 program 包括一些 pattern 和 action。

  如果 gawk 程式较长,较为方便的做法是将 gawk 程式存在一个档案, 即 patterns 与 actions 写在档名为 program-file 的档案里面,执行gawk 的格式如下所示:

gawk -f program-file input-file1 input-file2 ... 

  gawk 程式的档案不止一个时,执行gawk 的格式如下所示:


gawk -f program-file1 -f program-file2 ... input-file1 
input-file2 ... 

2.2 一个简单的例子

  现在我们举一个简单的例子,因为 gawk 程式很短,所以将 gawk 程式直接写在 command line。

gawk '/foo/ {print $0}' BBS-list 

  实际的 gawk 程式为 /foo/ {print $0}。/foo/ 为 pattern,意思为搜寻输入档里的每一行是否含有子字串 'foo',如果含有 'foo' 则执行 action。

  action 为 print $0,是将现在这一行的内容印出。BBS-list 是输入的档案。

  执行完上述指令後,会印出下面的结果:


fooey 555-1234 2400/1200/300 B 
foot 555-6699 1200/300 B 
macfoo 555-6480 1200/300 A 
sabafoo 555-2127 1200/300 C 

2.3 一个较复杂的例子

gawk '$1 == "Feb" {sum=$2+$3} END {print sum}' shipped 

  现在这个例子会将输入档 'shipped' 的第一个栏位与 "Feb" 做比较,如果相等,则其对应的第2栏位与第3栏位的值会被加到变数 sum。 对於输入档的每一行重复上述的动作,直到输入档的每一行都被处理过为止。最後将 sum 的值印出。END {print sum} 的意思为在所有的输入读完之後,执行一次 print sum 的动作,也就是把 sum 的值印出。

  下面是执行的结果:

84 

 (本文已被浏览 2197 次)
 发布人:sdccf
 → 推荐给我的好友
上篇文章:GAWK 手册(一)
下篇文章:GAWK 手册(三)
 相关文章:
一个awk应用的小例子 几个Awk应用实例
awk分段处理记录并格式化输出(处理LDAP文件和DHCP记录) 用AWK实现DB2数据库Schema的同步
awk自动创建格式化文本 awk里面的一些隐藏特性
gawk 收取邮件测试 C与脚本语言awk混合编程
c语言调用gawk shell学习资料汇总
Awk编程学习资料 Awk 实例(三)
Awk 实例(二) Awk 实例(一)
Unix awk使用手册(6) Unix awk使用手册(5)
Unix awk使用手册(4) Unix awk使用手册(1)
Unix awk使用手册(3) Unix awk使用手册(2)

相关搜索
查看百度中关于GAWK 手册(二)的更多内容
查看google中关于GAWK 手册(二)的更多内容
   文章分类
操作系统 |
SCO_UNIX  Sun_Solaris  IBM_AIX  HP_UX  Linux  BSD  Tru64_UNIX 
通用UNIX知识  Windows  Minix 
程序设计 |
Shell编程  C/C++  汇编  PHP  JAVA  Perl  Python 
ASP/HTML  XML  中间件 
数据库 |
Oracle  Informix  Sybase  Fox  DB2  SQL  MySQL 
PostgreSQL 
网络应用 |
网络应用 
计算机硬件 |
计算机主机  打印机  路由器  交换机  终端  磁带机  MO 
刻录机  终端服务器  调制解调器 
   文章评论
  → 评论内容 (点击查看)   共0条评论,每页显示5条评论   浏览所有评论
(没有相关评论)
  → 发表我的评论
您的姓名: 您的Email:
评论内容:
250字内
发表评论:      发表评论须知 →
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  • 关于我们 ┋  网站留言 ┋  网站地图 ┋  友情链接 ┋  与我在线 ┋  汇款确认 ┋  管理 ┋  TOP
    Linux.Unix爱好者家园  http://www.unix-cd.com/
    联系我们:sdccf@163.com
    腾讯QQ: 7644599
    备案序号:鲁ICP备05000455号
    Copyright (c) 2001-2008 Unix-cd.com. All Rights Reserved.