linux-awk

linux-awk

awk基本结构

awk ‘BEGIN{ print “start”} pattern { commands } END { print “end” }’ file

一个awk脚本通常由3个部分组成:BEGIN语句块、END语句块和能够使用模式匹配的通用语句块。这3个部分是可选的,它们中任何一个部分都可以不出现在脚本中。脚本通常会被包含在单引用或双引号中

各种使用例子


grep 'CompanyFacade' dubboProviderLogger.log | awk -F '>' '{print $2}'|awk -F '-' '$2 >= 2  {print NR ")"  substr($1,19)  "\t" $2}'
 
grep 'CompanyFacade' dubboProviderLogger.log | awk -F '>' '/getListByParam/ {print $2 }'| awk -F '-' '{if ($2>=2)  print "这个是超过2ms的接口\n" $1 "\t" $2;}'
 
grep 'CompanyFacade' dubboProviderLogger.log | awk -F '>' '/city/{print substr($2,49,90)}'
 
grep 'CompanyFacade' dubboProviderLogger.log | awk -F '.' '/getListByParam/{count = $3 + $3 ; print $3  "\t"  $4 "\t"  count }'
 
grep 'CompanyFacade' dubboProviderLogger.log | awk -F '>' '/getListByParam/{print $2 }'| awk -F '"'  '$8>360200 {print }'
 
grep 'CompanyFacade' dubboProviderLogger.log | awk -F '>' '/getListByParam/{print $2 }'| awk -F '-' '{print ($1 "\t" $2) > "t.txt" }'
 
grep 'CompanyFacade' dubboProviderLogger.log | awk -F '>' '/getListByParam/{print $2 }'| awk -F '-' '{if ($2>=10)  print ">=10 count = "  a++;else print "<10 count =" b++}'
 
//打印以1结尾的行
awk  '/$1/{print $0}'

属性

属性 介绍 备注 例子
$NF 表示最后一个元素 $NF-1倒数第二个元素
NR 当前行数
toupper() 括号内元素置为大写 toupper ( 1 ) 将1 大写
substr() 截取字符串 substr ( 1,5 ) 截取掉元素1 的前 5 个元素,保留剩下的 , substr ( $1 , 5 , 10 ) 截取 5 到 10
/city/ 函数搜索包含city的行
/^1000/ 函数-yi
{ print ($2 > "t.txt" } > (覆盖)输出到文件 {print (1 "\t"2) > "t.txt"}
{ print ($2 >> "t.txt" } >> (追加)输出到文件 print ($2 >> "t.txt" }
$0 当前行内容

内置变量

FILENAME:当前文件名

FS:字段分隔符,默认是空格和制表符。

RS:行分隔符,用于分割每一行,默认是换行符。

OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。

ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。

OFMT:数字输出的格式,默认为%.6g。

内置函数:

tolower():字符转为小写。

length():返回字符串长度。

substr():返回子字符串。

sin():正弦。

cos():余弦。

sqrt():平方根。

rand():随机数

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一. AWK 说明 awk的处理文本和数据的方式:它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并...
    西华子阅读 961评论 0 4
  • 转载 原文的排版和内容都更加友好,并且详细,我只是在这里贴出了一部分留作自己以后参考和学习,如希望更详细了解AWK...
    XKirk阅读 3,291评论 2 25
  • 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤...
    ad085d162310阅读 1,136评论 0 1
  • linux awk命令详解 来源:ggjucheng 链接:http://www.cnblogs.com/ggju...
    meng_philip123阅读 881评论 0 1
  • sed工具简介 用法:sed [-nefri] 动作参数:-n:使用安静模式(Silent)模式,一般在sed的...
    Bloo_m阅读 1,027评论 0 1