码迷,mamicode.com
首页 > 其他好文 > 详细

9月15日awk小结

时间:2015-09-22 00:05:59      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:blank

awk是报告生成器

awk是原作者:aho,Weinberger,Kernighan三个人首字母的缩写

awk是指向gawk的符号链接

 

awk是独立的编程语言,

模式:类似地址定界

$0表示整个一行

$1$2$3$4,表示每个由空格分开的单位

技术分享

-F char 是分隔符

awk [选项] ‘program’ file

awk [选项] ‘pattern{action}’ file

 

支持变量:

内置变量,自定义变量

内置变量:

      FS:输入时字段分隔符

技术分享

      Rs:输入时行分隔符

技术分享 

      OFS:输出时字段分隔符

技术分享

      ORS:输出时行分隔符

技术分享 

      NF:一个行里的字段数

技术分享

      NR:文件里的行数

技术分享

      FNR:显示每个文件的行号

技术分享

awk –F: ‘{print $1,$NF}’ /etc/passwdd等同于下边的命令

awk –v FS=: ‘{print $1,$NF}’ /etc/passwd



 

自定义变量

技术分享

printf命令:

printf format,item1,item2

format的可选项:

    %c:显示字符的ASCII码

    %d,%i:显示十进制

    %e,%E:科学技术法显示数值

    %f:显示字符串

    %g,%G:以科学技术法格式或浮点数格式显示数值

    %s:显示字符串

    %u:显示无符号整数

    %%:显示%自身

修饰符:

    #:宽度

    -左对齐

    +显示数值符号

    .#取精度值

技术分享

注意 : print不会显示出%d的含义,只会显示字符

算术运算:+,-,*,/,+=,-=,*=,/=

如果自身是=,要写成/=/

比较操作符:

<

<=

>

>=

==

!=

~左边字符串能匹配右边模式为真

!~对上一个命令取反

三目操作符:

技术分享

 

pattern,模式:

1、正则:/pattern/

技术分享

2、表达式:

技术分享

3、行范围,地址定界startline endline等,用NR来做判断

技术分享

4、BEGIN/END特殊模式,表示之前(BEGIN)或之后(END)运行1次

技术分享

5、空模式,匹配任意行,默认模式

action

     1、表达式

     2、控制语句 if-else,

if(条件){then body}else{else body}

技术分享

do-while

技术分享

死循环啦。

while

技术分享

for

技术分享

case

     3、组合语句

     4、输入语句

     5、输出语句print,printf

 

循环控制:break,continue,next

next,提前进入对下一行的处理!!

 

数组:

传统数组:索引从1开始

关联数组

for(var in array),array是索引

技术分享

技术分享

这个用法很常用,统计同一字段的不同名称的数量

 

内置函数:

length(string),求string长度

split(目标字符串,分隔后存放位置,分隔符)分隔字符串

substr取子串

9月15日awk小结

标签:blank

原文地址:http://korekara.blog.51cto.com/8206017/1696912

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!