Chinaunix首页 | 论坛 | 博客
  • 博客访问: 441144
  • 博文数量: 40
  • 博客积分: 6011
  • 博客等级: 准将
  • 技术积分: 1490
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-06 10:50
文章分类

全部博文(40)

文章存档

2011年(1)

2008年(39)

我的朋友

分类: LINUX

2008-03-07 21:01:04

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 http://192.168.200.18/server-status|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

阅读(920) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Awk学习笔记

给主人留下些什么吧!~~