第6周第5次课(4月27日)

课程内容:

9.6/9.7 awk
扩展
把这里面的所有练习题做一下
http://www.apelearn.com/study_v2/chapter14.html

9.6/9.7 awk

AWK支持分段,可以针对每一段去匹配打印出来。

操作实例如下

[root@jimmylinux-002 awk]# awk -F ':' '{print $1}' test.txt

分隔符为:冒号,指定第一段打印出来,这个操作也不会去更改文件本身的内容。

[root@jimmylinux-002 awk]# awk -F ':' '{print $0}' test.txt

把所有的段打印出来

[root@jimmylinux-002 awk]# awk '{print $0}' test.txt

打印所有内容,相当于cat命令,如果awk忽略了-F,也就是没有指定分隔符,默认将会以空格或空白字符为分隔符去打印。

[root@jimmylinux-002 awk]# vim 1.txt  创建一个测试文件

[root@jimmylinux-002 awk]# awk -F ':' '{print $1,$3,$4}' test.txt

把$之间用,逗号分开,将1、3、4段都打印出来

[root@jimmylinux-002 awk]# awk -F ':' '{print $1"#"$3"#"$4}' test.txt  指定中间以#分隔

[root@jimmylinux-002 awk]# awk '/oo/' test.txt

把带有oo的内容匹配出来并列出结果

[root@jimmylinux-002 awk]# awk -F ':' '$1 ~ /oo/' test.txt

把第一段符合oo内容的匹配出来

[root@jimmylinux-002 awk]# awk -F ':' '$1 ~ /o+/' test.txt

同样也支持正则表达式匹配

[root@jimmylinux-002 awk]# awk -F ':' '/root/ {print $1,$3} /user/ {print $3,$4}' test.txt

AWK同样也支持多个表达式一起写

[root@jimmylinux-002 awk]# awk -F ':' '/root|user/ {print $0}' test.txt

包含root或者包含user的全部打印出来

针对数学运算表达式

加双引号就相当于sort以ASCII排序方式去计算的,会认为是一个字符串而不是数字,不会按数字算,如果需求是针对数字的,就不要加双引号。

[root@jimmylinux-002 awk]# awk -F ':' '$7!="/sbin/nologin" {print $0}' test.txt

把第7段不等于/sbin/nologin全部打印出来(!=表示不等于)

把2个字段相互比较

2个条件一起使用,$3>5并且$3<7

$3>1000或者$7=/sbin/nologin

$3>1000或者$7匹配bash的

[root@jimmylinux-002 awk]# awk -F ':' '{OFS="#"} $3>1000 || $7 ~ /bash/ {print $1,$3,$7}'  test.txt

如果有多段-F指定分段前的分隔符,OFS用来指定print时候用到的分隔符(OFS写在最前,然后写条件,最后写语句)

如果不加条件就表示全部(2个花括号中间写条件)

[root@jimmylinux-002 awk]# awk -F ':' '{OFS="#"} {if ($3>1000) {print $1,$2,$3,$4}}' test.txt

还可以增加一些修饰符,定义完分隔符,然后print的分隔符,中间是条件和后面一起写。

也可以这样使用,就不需要在加if条件。

NR  表示行  NF  表示段

[root@jimmylinux-002 awk]# awk -F ':' '{print $NR":"$NF}' test.txt

$NR  一共有多少行,$NF一共多少段,总共就只有7段,那么打印第8段时候,因为没有东西所以就是空的。

2个等于号相对应的功能

tot  求和每一次循环都会把第3段相加,一直加到最后并打印出来。

grep、egrep、sed、awk 是非常重要的正则表达式相关的工具

AWK工具 使用介绍的更多相关文章

  1. 【转载】GAWK AWK工具使用手册

    IBM GAWK入门资料http://www.ibm.com/developerworks/cn/education/aix/au-gawk/ AWK 是什么? 最简单地说,AWK 是一种用于处理文本 ...

  2. 星型数据仓库olap工具kylin介绍

    星型数据仓库olap工具kylin介绍 数据仓库是目前企业级BI分析的重要平台,尤其在互联网公司,每天都会产生数以百G的日志,如何从这些日志中发现数据的规律很重要. 数据仓库是数据分析的重要工具, 每 ...

  3. linux下内存泄露检测工具Valgrind介绍

    目前在linux开发一个分析实时路况的应用程序,在联合测试中发现程序存在内存泄露的情况. 这下着急了,马上就要上线了,还好发现了一款Valgrind工具,完美的解决了内存泄露的问题. 推荐大家可以使用 ...

  4. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  5. 【转载】JMeter学习(一)工具简单介绍

    JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静 ...

  6. 第二章 Qt常用工具的介绍

    第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...

  7. 【硬件】DELLserver硬件监控及DELL系统管理工具OMSA介绍

    1.1.1. DELLserver硬件监控及DELL系统管理工具OMSA介绍 本文介绍採用使用Nagios和OMSA监控DELLserver的硬件健康状态,Nagios监控的方式是NRPE模式,须要配 ...

  8. 性能测试开源小工具——http_load介绍

    淘测试 性能测试开源小工具——http_load介绍 meizhu 发表于:2009-07-02 浏览:3552次 评论:1次 所属分类: 性能测试 性能测试开源小工具——http_load介绍 ht ...

  9. Web Service单元测试工具实例介绍之SoapUI

    原文  Web Service单元测试工具实例介绍之SoapUI SoapUI是当前比较简单实用的开源Web Service测试工具,提供桌面应用程序和IDE插件程序两种使用方式.能够快速构建项目和组 ...

随机推荐

  1. 在VMware下进行的Windows2008操作系统虚拟机的安装

    一.VMware虚拟机的安装 首先你需要拥有一款软件VMware,这是一款虚拟机安装软件.Vmware比起Vbox收费较贵,占用资源大,但是拥有大量的资源以及拥有克隆技术,适合新手学习使用,较为专业. ...

  2. 转:NFS原理详解

    原文:http://atong.blog.51cto.com/2393905/1343950 一.NFS介绍 1)什么是NFS 它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录.NFS ...

  3. 【POJ3744】Scout YYF I

    Description YYF是一个英勇的侦查员.现在他正在执行打入到敌方内部的危险任务.在解决了一系列的险情后,YYF到达了敌方著名的"地雷路"起始点.这条路非常长,上面被精心排 ...

  4. C++学习笔记5_智能指针

    1. 一般的指针int main(void){ int *p=new int; *p=20; delete p; return 0;}智能指针能自动回收#include<memory> 记 ...

  5. 读书笔记——《MySQL DBA 工作笔记》

    关于前言 作者在前言中提出的一些观点很具有参考价值, 梳理完整的知识体系 这是每一个技术流都应该追逐的,完整的知识体系能够使我们对知识的掌握更加全面,而不仅仅局限于点 建立技术连接的思维,面对需求,永 ...

  6. Lost My Music:倍增实现可持久化单调栈维护凸包

    题目就是求树上每个节点的所有祖先中(ci-cj)/(dj-di)的最小值. 那么就是(ci-cj)/(di-dj)的最大值了. 对于每一个点,它的(ci,di)都是二维坐标系里的一个点 要求的就是祖先 ...

  7. [07/18NOIP模拟测试5]超级树

    鬼能想到的dp定义:dp[i][j]表示在一棵i级超级树中,有j条路径同时存在且这j条路径没有公共点时,可能的情况数 刚开始我也没看懂,所以举个例子 如一个2级的超级树,父节点为1,左右儿子为2,3 ...

  8. 使用Typescript重构axios(十六)——请求和响应数据配置化

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  9. 使用.net core中的类DispatchProxy实现AOP

    在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是软件开发中的一个热点,利用A ...

  10. maven配置nexus私有仓库

    <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://mav ...