前一篇学习了awk的基本知识,现在来做一些练习加深一下印象。

假设我们有这样一个待处理的文件"grade.txt":

M.Tansley     05/99     48311     Green     8     40     44
J.Lulu     06/99     48317     green     9     24     26
P.Bunny     02/99     48     Yellow     12     35     28
J.Troll     07/99     4842     Brown-3     12     26     26
L.Tansley     05/99     4712     Brown-2     12     30     28
 
#打印整个文件
zhuyupeng@zhuyupeng-PC ~
$ awk '{print $0}' grade.txt
M.Tansley       05/99   48311   Green   8       40      44
J.Lulu          06/99   48317   green   9       24      26
P.Bunny         02/99   48      Yellow  12      35      28
J.Troll         07/99   4842    Brown-3 12      26      26
L.Tansley       05/99   4712    Brown-2 12      30      28

#打印第一和第四个域
zhuyupeng@zhuyupeng-PC ~
$ awk '{print $1,$4}' grade.txt
M.Tansley Green
J.Lulu green
P.Bunny Yellow
J.Troll Brown-3
L.Tansley Brown-2

 
#打印表头
zhuyupeng@zhuyupeng-PC ~
$ awk 'BEGIN {print "Name            Belt\n---------------------------"}
> {print $1"\t"$4}' grade.txt
Name            Belt
---------------------------
M.Tansley       Green
J.Lulu  green
P.Bunny Yellow
J.Troll Brown-3
L.Tansley       Brown-2

正则表达式相关
 
为使一域号匹配正则表达式,使用符号‘~’后紧跟正则表达式,也可以用 i f语句。awk中if后面的条件用()括起来。
#下面代码打印$4 包含 Brown 的行
zhuyupeng@zhuyupeng-PC ~
$ awk '$4~/Brown/ {print $0}' grade.txt
J.Troll         07/99   4842    Brown-3 12      26      26
L.Tansley       05/99   4712    Brown-2 12      30      28

 
#非精确匹配
zhuyupeng@zhuyupeng-PC ~
$ awk '$3 ~/48/ {print $0}' grade.txt
M.Tansley       05/99   48311   Green   8       40      44
J.Lulu          06/99   48317   green   9       24      26
P.Bunny         02/99   48      Yellow  12      35      28
J.Troll         07/99   4842    Brown-3 12      26      26

 
#精确匹配
zhuyupeng@zhuyupeng-PC ~
$ awk '$3=="48" {print $0}' grade.txt
P.Bunny         02/99   48      Yellow  12      35      28

 
 
 
#不匹配 使用 ‘!~’
zhuyupeng@zhuyupeng-PC ~
$ awk '$0 !~ /Brown/' grade.txt
M.Tansley       05/99   48311   Green   8       40      44
J.Lulu          06/99   48317   green   9       24      26
P.Bunny         02/99   48      Yellow  12      35      28

 
zhuyupeng@zhuyupeng-PC ~
$ awk '$4 != "Brown-2" {print $0}' grade.txt
M.Tansley       05/99   48311   Green   8       40      44
J.Lulu          06/99   48317   green   9       24      26
P.Bunny         02/99   48      Yellow  12      35      28
J.Troll         07/99   4842    Brown-3 12      26      26

 
#小于
zhuyupeng@zhuyupeng-PC ~
$ awk '$6 < $7 {print $0 "$1 Try better at the next comp"}' grade.txt
M.Tansley       05/99   48311   Green   8       40      44$1 Try better at the next comp
J.Lulu          06/99   48317   green   9       24      26$1 Try better at the next comp

 
#设置大小写
zhuyupeng@zhuyupeng-PC ~
$ awk '/[Gg]reen/' grade.txt
M.Tansley       05/99   48311   Green   8       40      44
J.Lulu          06/99   48317   green   9       24      26

 
#匹配第一个域的第三个字符是‘a’
zhuyupeng@zhuyupeng-PC ~
$ awk '$1 ~/^...a/' grade.txt
M.Tansley       05/99   48311   Green   8       40      44
L.Tansley       05/99   4712    Brown-2 12      30      28

 
#'或'匹配,使用 ‘|’ ,需使用括号括起来
zhuyupeng@zhuyupeng-PC ~
$ awk '$0 ~/(Yellow|Brown)/' grade.txt
P.Bunny         02/99   48      Yellow  12      35      28
J.Troll         07/99   4842    Brown-3 12      26      26
L.Tansley       05/99   4712    Brown-2 12      30      28

 

转载于:https://www.cnblogs.com/zhuyp1015/archive/2012/07/14/2591822.html

awk 实例练习(一)相关推荐

  1. Awk 实例,第 1 部分

    通用线程:Awk 实例,第 1 部分 一种名称很奇特的优秀语言介绍 Daniel Robbins 总裁兼 CEO,Gentoo Technologies, Inc. 2000 年 12 月 转载自:I ...

  2. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(4)ip地址相关

    去年提前批我投了京东.字节和百度,一面,二面都被问到了awk,如果你会,并且还很熟悉,那肯定算是一个加分项了!好感度up up up! 基本原理本篇不再赘述.请阅读: 总结了200篇面经中的awk面试 ...

  3. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(2)去重统计排序

    去年提前批我投了京东.字节和百度,一面,二面都被问到了awk,如果你会,并且还很熟悉,那肯定算是一个加分项了!好感度up up up! 基本原理本篇不再赘述.请阅读: 总结了200篇面经中的awk面试 ...

  4. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(3)查进程,kill指定进程

    去年提前批我投了京东.字节和百度,一面,二面都被问到了awk,如果你会,并且还很熟悉,那肯定算是一个加分项了!好感度up up up! 基本原理本篇不再赘述.请阅读: 总结了200篇面经中的awk面试 ...

  5. awk 实例练习 (三)

    awk 使用printf    #printf使用类似于C语言 #字符转换 zhuyupeng@zhuyupeng-PC ~ $ echo "65" | awk '{printf ...

  6. (转)awk实例练习(二)

    文章转自 http://www.cnblogs.com/zhuyp1015/archive/2012/07/14/2591842.html 先来总结一下awk内置变量: ARGC          命 ...

  7. linux awk 内置变量实例

    awk 是一门非常优秀的文本处理工具,甚至可以上升作为一门程序设计语言. 它处理文本的速度是快得惊人的,现在很多基于shell 日志分析工具都可以用它完成.特点是设计简单,速度表现很好,本文将介绍aw ...

  8. Shell脚本之AWK

    前言:这段时间主播心情不好,所以没有前言,但是作为三剑客里的大哥,awk是最难的同时也是最重要的,拐友们要认真看 目录 一.AWK的介绍 1.1AWK的概述 1.2AWK的工作原理 1.3AWK命令基 ...

  9. Introduce to AWK utility

    通用线程:Awk 实例 Daniel Robbins (drobbins@gentoo.org) 第一部分 Awk 是一种非常好的语言,同时有一个非常奇怪的名称.在本系列(共三篇文章)的第一篇文章中, ...

最新文章

  1. BUUCTF 新年快乐 内涵的软件 Java逆向解密 刮开有奖
  2. 使用scrollIntoView方法解决抛锚定位时网页往上跳的问题
  3. Uber开源基于web的自主可视化系统,可共享数据
  4. nacos 负载策略_Nacos(一):Nacos介绍
  5. 【22】Vue 之 Vue Devtools
  6. python网页抓取与按键精灵原理一样吗_Python网络爬虫学习笔记之 三种网页抓取方法...
  7. 一文读懂品质体系认证,学会判断 PCB 板厂生产资质
  8. python验证考拉兹猜想_Python考拉兹猜想输出序列代码实践
  9. 史上最全的Windows进程详解!
  10. sxt_(015)_request处理表单数据及乱码
  11. 6s连接wifi上不了网络连接服务器未响应,iPhone 6/iPhone 6S 突然连不上wifi,wifi开了连不上wifi信号差...
  12. 网站运营如何做好活动策划(转载)
  13. Vue+Vuex+Axios+ECharts 画一个动态更新的中国地图
  14. mysql安装流程以及各类问题解决
  15. 爬取猫眼电影top100
  16. vbs恶搞小程序速成
  17. 微服务平台之网关架构与应用
  18. UE4制作尸潮爬墙学习笔记
  19. 数据骗子无处不在,教你拆穿所谓“万金油”
  20. 失焦的“她营销”,品牌营销困于女性议题

热门文章

  1. python语言怎么输入-python如何用input输入数组
  2. python白名单验证-Python中XSS白名单过滤的实现
  3. python 命令行参数-Python命令行参数处理
  4. python web为什么不火-编程语言里的明星:Python为什么突然不火了?
  5. python程序员工作怎样-python程序员待遇如何
  6. python3版本之间的区别-python3.6与3.4版本的区别是什么?
  7. python恶搞代码-搞笑的程序猿:看看你是哪种Python程序员
  8. php和python对比-通过PHP与Python代码对比浅析语法差异
  9. python基础语法手册format-Python基础语法-格式化输出
  10. 我自学python的路-Python学习路线图的总结