[转]Awk基础入门之二:读书笔记-awk运用

原文地址: http://www.lupaworld.com/home-space-uid-35711-do-blog-id-19774.html

 

awk
调用:

2.将awk命令插入一个文件,并使awk程序可以执行,然后用awk命令解释器作为脚本首行。
3.将所有awk命令插入一个单独文件


模式和动作
模式:两个特殊断 BEGIN和END
动作:实际动作大多在{}内指明

域和记录
浏览域表记为 $1,$2,......$n($1-$n称为域标识)

输出
1.抽取域

 

2.保存输出

 

3.使用标准输出
4.打印所有记录

 

5.打印单独记录

 

6.打印报告头

 

7.打印结尾

 

 

条件操作符


1.匹配

 

2.精确匹配
使用等号 ==
3.不匹配
!~
4.小于
if($6 < $7)
5.小于等于
6.大于
7.设置大小写

 

8.任意字符

 

9.或关系匹配

10.行首

 

11.AND &&

 

12.OR  ||

内置变量:


设置输入域到变量名

 

域值比较操作

 

修改改数值域取值

 

修改文本域

 

只显示修改改记录

 

创建新的输入域

 

增加列值

 

文件长度相加


内置的字符窜函数
gsub(r,s)                                                                     在整个$0中用s替代r
gsub(r,s,t)                                                                   在整个t中用s替代r
index(s,t)                                                                     返回s中字符串t的第一位置
length(s)                                                                      返回s长度
match(s,r)                                                                    测试s中是否包含匹配r的字符串
split(s,a,fs)                                                                  在fs上将s分成序列a
sub(s, )                                                                        用$0中最左边也是最长的字符串替代
subtr(s,p)                                                                    返回字符串s中从p开始的后缀部分
substr(s,p,n)                                                               返回字符串s中从p开始长度为n的后缀部分


1.gsub

                          

2.index查询字符串s中t出现的第一位置

 

3.length

 

4.match  (在ANCD中查找C的位置)

 

5.split
 

6.sub    只能替换指定域的第一个0

 

7.substr  按照起始位置及长度返回字符串的一部分

 

 

字符串屏蔽序列
/b                                                                  退格键
/f                                                                   走纸换页
/n                                                                  新行
/r                                                                   回车
/t                                                                   tab
/c                                                                  任意其他特殊字符
/ddd                                                              八进制

很简单的例子

 

 

输出函数printf(注意是printf不是print,两者效果不同的)
printf函数拥有几种不同的格式化输出功能

printf修饰符
-                                  左对齐
Width                          域的步长0表示0步长
.prec                            最大字符串长度,或小数点右边的位数



awk printf格式
%c                              ASCII字符
%d                              整数
%e                              浮点数,科学计数法
%f                               浮点数
%g                              awk决定使用哪种浮点数转换,e或者f
%o                              八进制数
%s                              字符串
%x                              十六进制数


1.字符串转换

 

 

2.格式化输出

 

 

3.向一行awk命令传值

 

 

4.awk脚本文件 (在文件名字后面加后缀.awk方便区分)
例子:

 

 

5.在awk中使用FS变量。
上述例子指定了FS变量(分隔符)为":"

awk数组
数组使用前,不必定义,也不必数组元素的个数,经常使用循环来访问数组。


循环类型基本结构
For (element in array) print array [element]
例:



数组和记录
例:
一个studentest.txt文件,内容如下:


接下来是测试脚本belt.awk

 

运行

belt.awk studentest.txt 此例用到2出循环,用于统计student数量和clolour数量。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值