linux shell之awk
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 > 1{printf $2}’ file1 算术运算: – * / % ^ awk ‘$1 * $2 > 100’ file printf: awk ''{printf "|3s%-12sn", $1,$2}'' file1:显示file1的内容,$1显示13个字符长度,默认右对齐,如果长度不够13字符的,用0填充.$2,显示12个字符,左对齐. 条件表达式: awk ‘{max=($1 > $2) ? $1 : $2; printf max} file 逻辑运算: && || ! awk ‘$1 > 2 && $2 < 3’ file 范围匹配: awk ‘/tom/,/suzanne/’ filename awk将显示从tom首次出现的行道suzanne首次出现的行,包括两个行的边界在内.如果没有找到suzanne,awk打印到行尾,如果打印完tom和suzanne之间的内容后,如果还有Tom,则再次应用动作.
NR变量:每条记录的记录号都保持在NR变量中,每处理完一条记录NR就会加1
NF变量:保存记录中的字段数
|
||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |