linux-awk

作者: zhangsanzhu | 来源:发表于2018-12-30 22:31 被阅读0次

    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():随机数

    相关文章

      网友评论

          本文标题:linux-awk

          本文链接:https://www.haomeiwen.com/subject/kkuulqtx.html