awk 学习笔记

来源:互联网 发布:js文件用加密吗 编辑:程序博客网 时间:2024/05/17 03:24

awk 是一个程式语言,对於资料的处理具有很强的功能。对於文 

字档里的资料做修改、比对、抽取等的处理,有着简练速度快的特点

常常与shell命令结合极大的简化工作


1 awk ' 命令' 文件名 更多是接收管道的数据在输出到管道中


执行格式 awk pattern { action } 


patten 的种类


/正则表达式/


表达式 不为0 或是不为空串就成功


-f 可以导入一个程序文件


awk '/ 正则表达式/{action}'


awk 对输入的文件每行进行处理 ; BEGIN 标识在处理文件前 处理的程序;END 是遍历后处理的程序


awk 对每行会划分很多歌段位 默认已 空格或是TAB为划分符 改变划为符使用FS=, 更改输出段位符 OFS, 记录符 为 RS 


awk 'BEGIN {OFS=";"; ORS="/n/n"} {print $1, $2}' BBS-list 


$0 表示当前行,$1 第一个段位值, $NF表示最后一个段位值

    可以定义很多一些变量 s, s[nihao]


awk '$1 == "Feb" {sum=$2+$3}  END {print sum}'  shipped 


awk '$1~/foo/ {print $0}' BBS-list 第一个段位进行匹配


awk '/foo/ {print $2}' BBS-list


可以使用printf 


regexp 也能使用在比较的算式 


exp ~/regexp/


 比较的 pattern 用来测试两个数字或字串的关系诸如大於、等於          

、小於。下面列出一些比较的pattern:                                   

                                                                  

x<y   如果 x 小於 y,则结果为真。                                 

x<=y  如果 x 小於、等於 y,则结果为真。                       

x>;y   如果 x 大於 y,则结果为真。                              

x>;=y  如果 x 大於、等於 y,则结果为真。                          

x==y  如果 x 等於 y,则结果为真。                                

x!=y  如果 x 不等於 y,则结果为真。                                

x~y   如果 x 符合 regular expression y,则结果为真。 

                                                                 (p25 of  

x!~y  如果 x 不符合 regular expression y,则结果为真。


   一个布林(boolean) pattern 是使用布林运算"或"('||'),"及"       

('&&'),"反"('!')来组合其它的pattern。                            

例如:                                                        

                                                              

   gawk '/2400/ && /foo/' BBS-list                              

   gawk '/2400/ || /foo/' BBS-list                              

   gawk '! /foo/' BBS-list   

算术运算  比较算式与布林算式 注意大于号要用分号 a>;b

此外支持 条件判断语句 循环语句 三目运算符

内置数学函数, 字符串函数,可以自定义函数


function name(param){


原创粉丝点击