快速业务通道

linux shell之awk

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-09

awk是一种用于处理数据和生成报告的编程语言.

awk ‘pattern ’ filename

没有指定操作,则默认打印所有匹配pattern的记录.

awk ‘{action1;action2…}’ filenamey或

awk ‘{

action1

action2…

}’ filename

没有指定模式,则用action处理所有的记录.

awk ‘pattern {action}’ filename

模式匹配:

awk ‘/mary/’ file:打印所有包含mary的行.

操作:

awk ‘{print $1}’ file:打印第一列.

模式与操作的组合:

awk ‘/mary/{printf $1,$2}’ file1

awk ‘$1 ~ /mary/{printf $1,$2}’ file1

分隔符:

FS变量:保持了分段符的值,可以用-F选项修改.

awk –F ‘[:t]’ ‘{printf $1}’ file1:用:t作为分隔符

关系运算:

< > <= >= == != ~(匹配操作) !~(非匹配)

awk ‘$3 &gt; 1{printf $2}’ file1

算术运算:

– * / % ^

awk ‘$1 * $2 &gt; 100’ file

printf:

awk ''{printf "|3s%-12sn", $1,$2}'' file1:显示file1的内容,$1显示13个字符长度,默认右对齐,如果长度不够13字符的,用0填充.$2,显示12个字符,左对齐.

条件表达式:

awk ‘{max=($1 &gt; $2) ? $1 : $2; printf max} file

逻辑运算:

&& || !

awk ‘$1 &gt; 2 && $2 &lt; 3’ file

范围匹配:

awk ‘/tom/,/suzanne/’ filename

awk将显示从tom首次出现的行道suzanne首次出现的行,包括两个行的边界在内.如果没有找到suzanne,awk打印到行尾,如果打印完tom和suzanne之间的内容后,如果还有Tom,则再次应用动作.

NR变量:每条记录的记录号都保持在NR变量中,每处理完一条记录NR就会加1

Empire CMS,phome.net

NF变量:保存记录中的字段数

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号