文档章节

shell编程总结14(gawk初级)

心中的理想乡
 心中的理想乡
发布于 2017/02/25 21:34
字数 641
阅读 15
收藏 0
点赞 0
评论 0

说明一下。现在到后面的几个章节,可学习的内容不多了。对于sed与gawk这两个重量级的东西,我在最近的项目工具上面看到了他们的身影(主要是awk,gawk他爹)。对于文本的自动化shell编程处理,躲不开要用到这些个高级的工具。我像在这个地方,我就拆开进行总结学习,学多了首先记不住两个工具的具体用法,其次无法马上用起来。我在这里,选择gawk来先学习。这一章总结主要总结一下gawk的基础。
1、基本的命令格式:
    gawk option program file
        选项:
            -F fs 指定行中分割数据段的字段分隔符
            -f file 指定读取程序的文件名
            -v var=value 定义gawk程序中的一个变量及其默认值
            -mf N 指定要处理的数据文件中的最大字段数
            -mr N 指定数据文件中的最大数据行数
            -W keyword 指定gwak的兼容模式或警告等级

2、基本的使用:
    gawk '{print "Hello World!"}'
    说明:这个执行之后由于没有指定输入的文件,所以命令行会一直处在交互的状态,一直在等待标准输入往里面输入值,每次输入值之后,都会执行单引号里面的程序(里面可以说是一个小型的脚本语言程序吧)
3、gawk的基本特性之一是它处理文本文件中数据的能力。他会自动给每行中的每个数据元素分配一个变量。默认情况下的变量分配如下:
    $0代表整个文本行
    $1代表文本行中的第一个数据字段
    $2代表文本行中的第二个数据字段
    $n代表文本行中的第n个数据字段
每个数据字段在文本行中都是通过字段分隔符来划分的。

4、直接从文件中读取程序来处理文本文件数据
文件中的程序:
{print $1 "'s home directory is " $6}
执行命令:
gawk -F: -f programFile /etc/passwd
在这里用到了一个-F的选项,主要用来指定,每一个行中的分割字段的分隔符是什么
5、在数据处理之前运行脚本与之后运行的脚本
    举例:    
        BEGIN{
            print "The latest list of users and shells"
            print "UserId        shell"
            print "------        ------"
            FS=":"
        }
        {
            print $1 "        " $7
        }
        END{
            print "This concludes the listing"
        }
        运行脚本:
        gawk -f programFile /etc/passwd

© 著作权归作者所有

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

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

王诗翔
2017/12/26
0
0
linux awk

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

疯code
2016/09/18
37
0
利用 gnuplot 绘制图 sar搜集数据

利用gnuplot工具对sar 搜集的数据绘图 [root@nd3 ~]# sar -b -f /var/log/sa/sa26 |gawk '/^[^a-z]+$/{print $1"t"($NF+$(NF-1))}' >/tmp/block.tmp [root@nd3 ~]# cat /tmp/block.tmp 11:5......

浮生θ谨记
2013/03/01
0
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
大数据教程(2.10):Linux命令awk详解

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

em_aaron
07/14
0
0
awk 用法详解!

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

求学ing
2013/08/08
10.8K
0
文本处理三剑客之一----------awk

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

疯帽爱丽丝
2017/09/24
0
0
GNU Awk 4.1.0 发布

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

oschina
2013/05/12
1K
11
一个字符串转换的问题

昨天遇到一个问题,需要将大量的时间格式字符串如”2015,10,14,18,03,01”,转化为指定格式的字符串如”2015-10-14 18:03:01” ,由于转换数据量大且频繁,所以特意研究了一下哪种方法比较高...

天蓝1122
2015/10/15
37
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python以太坊类库web3.py概览

python通过web3.py库与以太坊交互共同入口是web3对象。web3对象提供API接口,python开发应用与以太坊进行交互如钱包创建、支付、转账等连接JSON-RPC服务器进行。 Providers提供者 Providers使...

智能合约
6分钟前
0
0
【Android学习笔记】设置App启动页

先将启动页放到项目资源中,图片一般是1080*1920的jpg。 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: >>>阅读全文

全部原谅
7分钟前
0
0
什么是React-redux、为什么使用React-redux、怎么使用React-redux

1、什么是React-redux React-redux是用于连接React和Redux的 2、为什么使用React-redux 使用React-redux可以使redux部分代码更简洁更明了,比如组建中需要使用到的数据都在mapStateToProps方...

kimyeongnam
10分钟前
0
0
Spring核心——Stereotype组件与Bean扫描

在注解自动装载中介绍了通过注解(Annotation)自动向Bean中注入其他Bean的方法,本篇将介绍通过注解(Annotation)向容器添加Bean的方法。 Spring的核心容器提供了@Component和@Bean注解来标...

随风溜达的向日葵
10分钟前
0
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

猫咪编程
13分钟前
0
0
flink fold example

flink fold例子 import org.apache.flink.api.common.functions.*;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.S......

coord
15分钟前
0
0
c++ qt 组播总结

每个人都有不同的认知规律和习惯, 有的人喜欢搞一套严密的大理论, 论述起来滔滔不绝, 不管自己懂不懂, 反正读者/听者是没搞懂。 有的人喜欢从实践出发, 没看到代码, 不运行一下, 不看...

backtrackx
19分钟前
0
0
Sublime text2安装json格式化插件SublimePrettyJson[Windows]

一、下载SublimePrettyJson插件包 https://github.com/dzhibas/SublimePrettyJson 二、将下载的文件解压放到在package目录下面 C:\Users\lucky\AppData\Roaming\Sublime Text 3\Packages 每个......

lazy~
19分钟前
0
0
安装vue-cli 报4058错误

1. 4058是网络代理错误。 安装淘宝源修改一下就可以了: npm --registry https://registry.npm.taobao.org info underscore 改为cnpm执行: cnpm install --global vue-cli 安装成功: 试试版...

MrBoyce
20分钟前
0
0
CPU飙升分析

1、top -----看具体的进程 2、top -H -p pid ------该进程的线程 3、printf 0x%x 15248 ------将线程改为16进制 4、jstack 进程...

北极之北
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部