文档章节

shell编程总结15(gawk高级)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:34
字数 617
阅读 6
收藏 0
点赞 0
评论 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
        }
 

© 著作权归作者所有

共有 人打赏支持
心中的理想乡
粉丝 8
博文 68
码字总数 61989
作品 0
深圳
程序员
初识sed与gawk

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

王诗翔
2017/12/26
0
0
文本处理三剑客之一----------awk

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

疯帽爱丽丝
2017/09/24
0
0
linux awk

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

疯code
2016/09/18
37
0
awk快速入门

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

布拉君君
2016/02/29
34
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
awk 用法详解!

awk简介 awk: 中文意思是报告生成器 能够根据我们输入的信息,将信息格式化以后显示,将定义好的信息以比较美观(直观)的方式显示出来出现比较早,继而出现了new awk(nawk)在windows上实现...

求学ing
2013/08/08
10.8K
0
搭建yum源的shell script

#!/bin/sh #Shell name:configyum.sh #Program # config for yum-pack # #Author:pero #Email: perofu.com@gmail.com #History # 2012/07/15 #Usage:vi configyum.sh ; :set ff=unix # #If y......

perofu
2012/08/27
0
0
GNU Awk 4.1.0 发布

awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义 函数和动态正则表达式等先进功能,是linux/uni...

oschina
2013/05/12
1K
11
2017-12-5Linux基础知识(15)shell编程

shell编程是在Linux的基础知识中所必须掌握的语言,它也是一个命令的集合,如果学会的话,我们将会事半功倍,将重复的操作通过shell编程脚本来实现,减轻了一定的负担,那么现在就来讲一下s...

刘祥宇
2017/12/07
0
0
一个可以在Linux环境下找到,杀死,并重启Tomcat的脚本

tomcat_restart.sh 参考 shell编程——if语句 Linux查找文件,查找程序端口并杀死程序

ckJava
2016/11/10
51
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
18分钟前
0
0
NetCat Tutorials

Hacking with Netcat part 1: The Basics Hacking with Netcat part 2: Bind and reverse shells Hacking with Netcat part 3: Advanced Techniques 10 Introduction to Netcat - pdf NetCat......

zungyiu
18分钟前
0
0
Android Studio+NDK+Cmake 移植FFmpeg-4.0.2命令行工具

一、编译 参考大神的帖子,亲测一次编译成功:https://blog.csdn.net/bobcat_kay/article/details/80889398 鉴于以前查文档的经验,这里附上编写例子的时间:2018年7月22日 我用的是ubantu,...

她叫我小渝
19分钟前
0
0
mysql创建数据库

登录MYSQL mysql -u root -p 脚本创建数据库WeChat,并制定默认的字符集是utf8mb4。 CREATE DATABASE Wechat DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci; 授权 grant all......

niithub
33分钟前
0
0
svn: Unable to connect to a repository URL 的解决方案

错误图示: 解决办法:清除本地保存的授权信息; 1:右键点击本地文件夹,选择设置; TortoiseSVN -> Settings 2:在弹出的对话框中选择 Saved Data, 右侧选择:授权地方清理所有。 然后点确...

宁哥实战课堂
今天
1
0
sleep与wait的区别

Thread.sleep(XXX)方法消耗CPU吗? 这个知识点是我之前认识一直有错误的一个知识点,在我以前的认识里面,我一直认为Thread.sleep(1000)的这一秒钟的时间内,线程的休眠是一直占用着CPU的时间...

码代码的小司机
今天
1
0
20位活跃在Github上的国内技术大牛 leij 何小鹏 亚信

本文列举了20位在Github上非常活跃的国内大牛,看看其中是不是很多熟悉的面孔? 1. lifesinger(玉伯) Github主页: https://github.com/lifesinger 微博:@ 玉伯也叫射雕 玉伯(王保平),...

海博1600
今天
1
0
Mybatis收集配置

一、Mybatis取Clob数据 1、Mapper.xml配置 <resultMap type="com.test.User" id="user"> <result column="id" property="id"/> <result column="json_data" property="jsonData" ......

星痕2018
今天
1
0
centos7设置以多用户模式启动

1、旧版本linux系统修改inittab文件,在新版本执行vi /etc/inittab 会有以下提示 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON......

haha360
今天
1
0
OSChina 周日乱弹 —— 局长:怕你不爱我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ andonny :分享周二珂的单曲《孤独她呀》 《孤独她呀》- 周二珂 手机党少年们想听歌,请使劲儿戳(这里) @孤星闵月 :没事干,看一遍红楼梦...

小小编辑
今天
385
12

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部