Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

GAWK 手册(十)

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

第十章 □例

  这里将列出 gawk 程式的一些例子。


gawk '{if (NF > max) max = NF} 
END {print max}' 

  此程式会印出所有输入行之中,栏位的最大个数。

gawk 'length($0) > 80' 

  此程式会印出一行超过 80 个字元的每一行。此处只有 pattern 被列出,action 是采用内定的 print。

gawk 'NF > 0' 

  对於拥有至少一个栏位的所有行,此程式皆会印出。这是一个简单的方法,将一个档案里的所有空白行删除。

gawk '{if (NF > 0) print}' 

  对於拥有至少一个栏位的所有行,此程式皆会印出。这是一个简单的方法,将一个档案里的所有空白行删除。


gawk 'BEGIN {for (i = 1; i <= 7; i++) 
print int(101 * rand())}' 

  此程式会印出□围是 0 到 100 之间的 7 个乱数值。

ls -l files | gawk '{x += $4}; END {print "total bytes: " x}' 

  此程式会印出所有指定的档案之bytes数目的总和。


expand file | gawk '{if (x < length()) x = length()} 
END {print "maximum line length is " x}' 

  此程式会将指定档案里最长一行的长度印出。expand 会将 tab 改成 space,所以是用实际的右边界来做长度的比较。


gawk 'BEGIN {FS = ":"} 
{print $1 | "sort"}' /etc/passwd 

  此程式会将所有使用者的login名称,依照字母的顺序印出


gawk '{nlines++} 
END {print nlines}' 

  此程式会将一个档案的总行数印出。


gawk 'END {print NR}' 

  此程式也会将一个档案的总行数印出,但是计算行数的工作由gawk来做。


gawk '{print NR,$0}' 

  此程式印出档案的内容时,会在每行的最前面印出行号,它的功能与 'cat -n' 类似。

第十一章 结论

  gawk 对於资料的处理具有很强的功能。它能够以很短的程式完成想要做的事,甚至一或二行的程式就能完成指定的工作。同样的一件工作,以 gawk 程式来写会比用其它程式语言来写短很多。

  gawk 是 GNU 所做的 awk,它是公众软体(Public Domain) 可免费使用。




 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:GAWK 手册(九)   下一篇:Shell 编程(1)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号