首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > awk学习笔记
【标  题】:awk学习笔记
【关键字】:awk
【来  源】:http://blog.chinaunix.net/article.php?articleId=48502&blogId=9646

awk学习笔记

awk/gawk 学习笔记

在g a w k语言中每一个命令都由两部分组成:一个模式( p a t t e r n)和一个相应的动作
(a c t i o n)。只要模式符合,g a w k就会执行相应的动作。其中模式部分用两个斜杠括起来,而动
作部分用一对花括号括起来。例如:
/ p a t t e r n 1 / { a c t i o n 1 }
/ p a t t e r n 2 / { a c t i o n 2 }
/ p a t t e r n 3 / { a c t i o n 3 }
所有的g a w k程序都是由这样的一对对的模式和动作组成的。其中模式或动作都能够被省
略,但是两个不能同时被省略。如果模式被省略,则对于作为输入的文件里面的每一行,动作
都会被执行。如果动作被省略,则缺省的动作被执行,既显示出所有符合模式的输入行而不做
任何的改动。

例如:
awk '/tom/{print }' /etc/passwd
显示/etc/passwd文件中含有"tom"字符串的列

g a w k有很多比较运算符,下面列出重要的几个:
= = 相等
! = 不相等
> 大于
< 小于
> = 大于等于
< = 小于等于

例如:
gawk ' > 100' testfile
将会显示文件testfile 中那些第四个字段大于1 0 0的记录。

下表列出了g a w k中基本的数值运算符。
运算符说明示例
+ 加法运算2+6
- 减法运算6-3
* 乘法运算2*5
/ 除法运算8/4
^ 乘方运算3^2 (=9)
% 求余数9%4 (=1)

例如:
{print /2}
显示第三个字段被2除的结果。

借用C语言的格式化输出指令,可以让g a w k的输出形式更为多样。这时,应该用p r i n t f而不
是p r i n t。例如:
{printf "%5s likes this language\n",$ 2 }
p r i n t f中的%5s 部分告诉gawk 如何格式化输出字符串,也就是输出5个字符长。它的值由
printf 的最后部分指出,在此是第二个字段。\ n是回车换行符。如果第二个字段中存储的是人
名,则输出结果大致如下:
Tim likes this language
G e o ff likes this language
Mike likes this language
Joe likes this language
gawk 语言支持的其他格式控制符号如下:
• c 如果是字符串,则显示第一个字符;如果是整数,则将数字以ASCII 字符的形式显示。

例如:
printf “% c”,6 5
结果将显示字母A。

• d 显示十进制的整数。
• i 显示十进制的整数。
• e 将浮点数以科学记数法的形式显示。

例如:
print “$ 4 . 3 e”,1 9 5 0
结果将显示1 . 9 5 0 e + 0 3。

在g a w k中,缺省的字段分隔符一般是空格符或TA B。但你可以在命令行使用- F选项改变字
符分隔符,只需在- F后面跟着你想用的分隔符即可。
gawk -F":" '/tom/{print ,,}' /etc/passwd
在此例中,将字符分隔符设置成分号。注意: - F必须是大写的,而且必须在第一个引号 之前。


怀旧经典:微软windows是怎么成为主流的:【上一篇】
Manually install db2 on AIX:【下一篇】
【相关文章】
  • 終於有了windows下的grep,awk.....了
  • awk使用手册
  • awk详解
  • awk 简介
  • Linux下文件操作编程和GAWK的介绍和应用
  • 通用线程:Awk 实例
  • gawk的使用方法
  • Awk 编程学习笔记之一
  • Awk 编程学习笔记之二
  • 【随机文章】
  • HTML组件(HTML COMPONENTS)之一
  • AIX V5.3 的打印概述 ( III )
  • 入侵后偷QQ的方法
  • 缓冲区溢出漏洞原理
  • Visual Basic 6.0中StrConv函数的Bug
  • 岁月催人老
  • 在VC6.0中调用python
  • SOA大赛学习笔记-6月9号
  • 使用用VB处理MYSQL数据库中二进制数据问题
  • 谁是流程的主人?(图)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.