您的位置:首页 > 其它

awk 学习笔记

2010-04-22 17:03 225 查看
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){

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: