Chinaunix首页 | 论坛 | 博客
  • 博客访问: 68201
  • 博文数量: 27
  • 博客积分: 1096
  • 博客等级: 少尉
  • 技术积分: 280
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-13 19:21
文章分类

全部博文(27)

文章存档

2011年(1)

2008年(26)

我的朋友

分类:

2008-07-13 23:30:59

AWK工具用法总结

awk最主要的功能是用来分域的.
最常见的用法是
awk '{print $1}' /etc/passwd

下面一句是如果文件的第二个域的值大于1300,则打印文件内所有记录第二个域的值
awk '{if($2>1300) print $2}' /path/to/filename

此句打印文件内所有不包含Yellow或Brown字符的行
awk '$0 !~/(Yellow|Brown)/' /path/to/filename

此句打印文件内第一域为Yellow且第四域为Brown字符的行
awk '{if ($1=="Brown" && $4=="Yellow") print $0}' /path/to/filename

下面一句是用来计算并打印文件所有第一个域的值的总和,和平均值
awk '{sum +=$1} END {print "Sum: ",sum;print "Average:",sum/NR";}' /path/to/filename

下面一个$NF是比较有用的,NF是记录域的个数,而$NF的含义就成了最后一个域的值了。举出如下一个例子,相信就比较明白了.
lynx -width=300 -dump |grep "localhost"|awk '{print $11,$14}'|
awk -F/ '{print $NF}'

把文件内所有包含Brown字符替换为Yellow。
awk 'gsub(/Brown/,"Yellow") {print $0}' /path/to/filename

打印文件每一行的长度
awk '{print length($0)}' /path/to/filename

打印指定字符的长度
awk 'BEGIN {print length("A TO Z")}' /path/to/filename
阅读(543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~