AWK工具 使用介绍
第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工具 使用介绍的更多相关文章
- 【转载】GAWK AWK工具使用手册
IBM GAWK入门资料http://www.ibm.com/developerworks/cn/education/aix/au-gawk/ AWK 是什么? 最简单地说,AWK 是一种用于处理文本 ...
- 星型数据仓库olap工具kylin介绍
星型数据仓库olap工具kylin介绍 数据仓库是目前企业级BI分析的重要平台,尤其在互联网公司,每天都会产生数以百G的日志,如何从这些日志中发现数据的规律很重要. 数据仓库是数据分析的重要工具, 每 ...
- linux下内存泄露检测工具Valgrind介绍
目前在linux开发一个分析实时路况的应用程序,在联合测试中发现程序存在内存泄露的情况. 这下着急了,马上就要上线了,还好发现了一款Valgrind工具,完美的解决了内存泄露的问题. 推荐大家可以使用 ...
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
- 【转载】JMeter学习(一)工具简单介绍
JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静 ...
- 第二章 Qt常用工具的介绍
第二章 Qt常用工具的介绍 (1)No.1 qmake 相信编写过Makefile的开发人员,随着工程中源码的级数递增和以类型.功能.模块组织源码的子目录的增多,都不愿意重复机械地手工编写这个工程管理 ...
- 【硬件】DELLserver硬件监控及DELL系统管理工具OMSA介绍
1.1.1. DELLserver硬件监控及DELL系统管理工具OMSA介绍 本文介绍採用使用Nagios和OMSA监控DELLserver的硬件健康状态,Nagios监控的方式是NRPE模式,须要配 ...
- 性能测试开源小工具——http_load介绍
淘测试 性能测试开源小工具——http_load介绍 meizhu 发表于:2009-07-02 浏览:3552次 评论:1次 所属分类: 性能测试 性能测试开源小工具——http_load介绍 ht ...
- Web Service单元测试工具实例介绍之SoapUI
原文 Web Service单元测试工具实例介绍之SoapUI SoapUI是当前比较简单实用的开源Web Service测试工具,提供桌面应用程序和IDE插件程序两种使用方式.能够快速构建项目和组 ...
随机推荐
- Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)
1.-依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行). 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数 ...
- MFC部分通用控件
1.StaticText鼠标单击事件 设置Notify属性,添加单击事件处理函数即可 2.Button 设置图标按钮 m_btn.SetIcon(LoadIcon(AfxGetResourceHa ...
- Springboot中使用自定义参数注解获取 token 中用户数据
使用自定义参数注解获取 token 中User数据 使用背景 在springboot项目开发中需要从token中获取用户信息时通常的方式要经历几个步骤 拦截器中截获token TokenUtil工具类 ...
- AtCoder Grand Contest 036D - Negative Cycle
神仙题?反正我是完全想不到哇QAQ 这场AGC真的很难咧\(\times 10086\) \(\bf Description\) 一张 \(n\) 个点的图,\(i\) 到 \(i+1\) 有连边. ...
- NOIP模拟 38
liu_runda的题! 错过辽QAQ T1虽然没用题解的损益法,但是用高精%还能过.. 没想到敲完就过编译了,还以为要调一天呢 高精度的阴影没了- T2的思路很巧妙 首先一个区间最多有一种颜色占一半 ...
- MongoDB自学------(1)MongoDB4.0安装
一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key ...
- 微信小程序云开发获取文件夹下所有文件
上周一个高中同学让我帮他做个图片展示的公众号,因为一直在加班的原因,所以一时忘了,昨晚想起来就赶紧加班加点的帮他弄了下,遇到了个问题,记录一下. 他的需求是要有个后台给他上传图片并且将图片归类,前端公 ...
- python3学习,有c++的基础
# 为注释一行 ''' ''' 和 """ """为注释多行 用缩进表示代码块,不用{},同一等级代码用的缩进数一致 一条语句写在多行:a= ...
- Spring Security登录验证流程源码解析
一.登录认证基于过滤器链 Spring Security的登录验证流程核心就是过滤器链.当一个请求到达时按照过滤器链的顺序依次进行处理,通过所有过滤器链的验证,就可以访问API接口了. SpringS ...
- 超简单解决linux音乐播放器乱码问题
问题 中文MP3的tag信息有些因为采用了GBK编码, 导致linux下的大多播放器(Rhythmbox, Audacious)无法正确识别而显示乱码. 如下图Audacious的乱码情况. 网上的常 ...