文档章节

shell编程总结15(gawk高级)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:34
字数 617
阅读 6
收藏 0

最后一章节来总结高级的gawk的用法。认真的看了一遍,发现gawk这东西其实就是一门语言,无误!使用方法非常的得心应手

1、内建的变量:(挑选几个有用的)
FIELDWIDTHS    每个数据字段的确切宽度
FS     输入字段分隔符
RS    输入数据行的分隔符
OFS    输出字段分隔符
ORS    输出行的数据分隔符
ARGC    当前命令行参数个数
ARGIND    当前文件在ARGV中的位置
ARGV     包含命令行参数的数组
ENVIRON    当前shell环境变量及其值组成的关联数组
FILENAME    当前数据文件中的数据行数
FNR    当前数据文件中的数据行数
NF    数据文件中的字段总数
NR    已处理的输入数据行数目

2、自定义数组:gawk中的数组使用类似于Java中的map的形式,叫做关联数组
    举例:var[index] = element
    说明:其中index可以是字符串
    遍历数组:
        for(i in var)
        {
            print "Index:",i,"value:",var[i]
        }
3、使用模式:
    正则:gawk 'BEGIN{FS=","} /11/{print $1}' data(匹配数据字段中含有字符串11的数据行)
    操作符:gawk 'BEGIN{FS=","} $2 ~ /^data2/{print $0}' data1(表示第二个数据字段是以data2开头的数据行)
    表达式:gawk -F: '$4 == 0{print $1}' /etc/passwd(表示第4个字段等于零的数据行,输出第1个字段)
4、结构化指令:if、while和for这些个语法和c的无差异,这里不多解释
5、格式化打印:这个也是和c无差异(还好是计算机科班出身)
6、内置函数:这个比较有用,可以直接对字符串进行操作
基本的数学类函数:
cos(x)    余弦
exp(x)    指数函数
int(x)    x的整数部分
log(x)    x的自然对数
rand()    0到1之间的随机数,不包含0和1
sin(x)    正弦
sqrt(x)    x的平方根
srand(x)    为计算随机数指定一个种子值
and(v1,v2)    v1和v2按位与
compl(val)    执行val的补运算
lshift(val,count)    将val左移count
or(v1,v2)    执行v1和v2的按位或运算
rshift(val,count)    将val右移count
xor(v1,v2)    执行v1和v2安慰异或运算

还有很牛逼的字符串类函数:(如下图)

时间类函数:(如下图)

7、自定义函数
    模板:
        function name(variables)
        {
            statements
        }
 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡

心中的理想乡

粉丝 23
博文 76
码字总数 104605
作品 0
深圳
程序员
私信 提问
初识sed与gawk

博文阅读 学习内容: 学习sed编辑器 gawk编辑器入门 sed编辑器基础 shell脚本最常见的一个用途就是处理文本文件,但仅靠shell脚本命令来处理文本文件的内容有点勉为其难。如果我们想在shell...

王诗翔
2017/12/26
0
0
shell学习之awk或gawk

AWK 是该编程语言本身的名称,它编写于 1977 年。其名称是三个主要作者的姓的首字母缩写:Drs. A. Aho、P. Weinberger 和 B. Kernighan。 因为 AWK 是一种文本处理和模式匹配语言,所以它通常...

woshixin
2018/11/29
0
0
文本处理三剑客之一----------awk

简单的说awk是一门类似于shell的编程语言,是一种强大的文本处理工具,它的设计思想来源于 SNOBOL4 、sed 、Marc Rochkind设计的有效性语言、语言工具 yacc 和 lex ,当然还从 C 语言中获取了...

疯帽爱丽丝
2017/09/24
0
0
shell常用命令

1.声明函数 function func1{ ........ }或者func1(){} 2.使用函数 func1 3while循环 while [ condtion ] do done 4.$?显示上一条运行码 5.使用return命令 function db1{ return 222 } db1......

泡海椒
2016/01/26
33
0
linux awk

简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的...

疯code
2016/09/18
37
0

没有更多内容

加载失败,请刷新页面

加载更多

Django进阶 1.1 ORM基础—ORM 1.2.1 增删改查之查询 1.2.2 删改增 (1) 1.2.3 删改增 (2)

ORM基础 ORM是Django操作数据库的API,Django的作者将sql语句封装在里面供我们使用。 我们前面还提到过Django提供一个模拟数据库的工具,sqlite,供我们学习测试使用。 如果我们想使用mysql...

隐匿的蚂蚁
今天
1
0
Windows 上安装 Scala

在安装 Scala 之前需要先安装 Java 环境,具体安装的详细方法就不在这里描述了。 您可以自行搜索我们网站中的内容获得其他网站的帮助来获得如何安装 Java 环境的方法。 接下来,我们可以从 ...

honeymose
今天
3
0
数据库篇多表操作

第1章 多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系...

stars永恒
今天
3
0
nginx日志自动切割

1.日志配置(Nginx 日志) access.log----记录哪些用户,哪些页面以及用户浏览器,IP等访问信息;error.log------记录服务器错误的日志 #配置日志存储路径:location / {      a...

em_aaron
昨天
5
0
java 反射

基本概念 RTTI,即Run-Time Type Identification,运行时类型识别。RTTI能在运行时就能够自动识别每个编译时已知的类型。   要想理解反射的原理,首先要了解什么是类型信息。Java让我们在运...

细节探索者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部