目录

一、awk概念

二、awk的工作过程

三、awk字符

四、内置变量

五、getline 

六、awk的精准筛选

七、例子演示

八、实验演示

一、awk概念

  1.概念:awk 是一个功能强大的编辑工具,逐行读取输入文本,主要作用于文件内容,AWK信息的读入也是逐行指定的匹配模式进行查找,

      对符合条件的内容进行格式化输出或者过滤处理。

  2.分隔符:默认是空格,多个空格会压缩一个,可用-F指定分割符

  3.awk执行过程:1、按照命令找指定的行  2、找到的行 打印,操作 awk默认的操作就是打印

  4.awk优点:可以在无交互的情况下自动化完成文本操作

二、awk的工作过程

   1.有BEGIN{action;..}优先执行  

   2.从(stdin)中读取内容,执行pattern{action;..}读取文件内容(没有pattern执行print内容)

   3.执行END{action;..}内容

三、awk字符

  1.-F “分隔符” 指明输入时用到的字段分隔符,默认的分隔符是若干个连续空白符

  2.-v变量赋值

  3.{ }外指定条件,{ }内指定操作。

    4.用逗号指定连续的行,用 || 指定不连续的行。&&表示”且“。

  5.默认为空格或制表位。与"-F"作用相同 用-F可以不加单引号 -F:,用FS必须用=""

  例子演示:

  1.-F指定分隔符

  2.-v赋值为:,每次出现:就空格

  3.{}外条件是数量为0打印,{}里操作是打印

   4.,为间隔符||为且&&为或

  5.FS定义分割符

四、内置变量

  内置变量,不能用双引号括起来,不然系统会把它当成字符串。

   NR: 当前处理的行的行号(序数)

   NF: 当前处理的行的字段个数。$NF代表最后一个字段
   FS: 列分割符。指定每行文本的字段分隔符,输入内容的分隔符
      默认为空格或制表位。与"-F"作用相同 用-F可以不加单引号 -F:,用FS必须用=""
      $0: 当前处理的行的整行内容 打印所有
   $n: 当前处理行的第n个字段(第n列)
   OFS:输出内容的列分隔符
   FILENAME:被处理的文件名
   RS: 行分隔符。awk从文件中读取资料时,
   将根据RS的定义把资料切割成许多条记录,而awk一次仅读入一条记录进行处理。预设值是"\n"

  1.$0$1(在里面是$0打印所有$1打印一列),在外面0不打印,1打印

  2.NR输出统计行号

  3.展示行号以及内容

  4.打印指定行号内容

  5.范围打印

  6.打印不相连的行

  7.正则表达式的范围打印

  8.偶数打印

  9.奇数打印

  10.BEGIN计算

  11.幂运算

五、getline

  1.当getline左右无重定向符号(“<”,">")或者管道符号(“|”)时,awk首先读取的是第一行,而getline获取的是光标跳转至下一行的内容(也就是第二行)。

  2.当getline左右有管道符号或重定向符时,getline则作用定向输入文件,由于文件是刚打开,并没有被awk读入一行,而只是getline读入,所以getline返回的是文件的第一行,而不是跳转至一行输入

  使用getline偶数打印

  使用getline奇数打印

  使用getline将1.txt传给2.txt

  将1.txt内容传给2.txt展示出来

 

六、awk的精准筛选

  $n(> < ==): 用于对比数值
  $n~"字符串": 代表第n个字段包含某个字符串
  $n!~"字符串": 代表第n个字段不包含某个字符串
  $n=="字符串": 代表第n个字段为某个字符串
  $n!="字符串": 代表第n个字段不为某个字符串
  $NF: 代表最后一个字段

  1.输出有bash,并且输出第一列和第7列

  2.输出第七个字段不包含“nologin”所在行的第一个字段和最后一个字段

七、例子演示

  1.过滤打印

  2.行号加1递归

  3.过滤passwd展示前4行的第一列

  4.替换:换为+

  5.以:为分隔符换行输出

  6.打印uid大于1000的用户信息

  7.使用if判断用户信息

  8.三元表达式,?相当于then,:相当于else

  9.awk中的数组形成遍历

八、实验演示

  1.简单的日志分割

  2.提取host.txt主机名后再放回host.txt文件

  3.统计磁盘可用容量

  4.统计/etc下文件总大小

  5.CPU使用率

  6.统计内存

linux awk文本的更多相关文章

  1. Linux - awk 文本处理工具一

    AWK AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一:awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命 ...

  2. Linux - awk 文本处理工具六 - 日志关键字筛选

    查看多少行 ? awk '{print NR}' access.log |tail -n1 日期时间筛选检测 awk '/Dec 10/ {print $0}' /opt/mongod/log/mon ...

  3. Linux - awk 文本处理工具五

    awk 线上处理常用模式 awk 处理复杂日志 6.19: DHB_014_号百总机服务业务日报:广州 到达数异常! DHB_023_号百漏话提醒日报:珠海 到达数异常! 6.20: DHB_014_ ...

  4. Linux - awk 文本处理工具四

    awk 常用示例 获取本机 IP 方式 /sbin/ifconfig |awk -v RS="Bcast:" '{print $NF}'|awk -F: '/addr/{print ...

  5. Linux - awk 文本处理工具三

    AWK 文件打印匹配 格式示例 awk '/Tom/' file # 打印匹配到得行 awk '/^Tom/{print $1}' # 匹配Tom开头的行 打印第一个字段 awk '$1 !~ /ly ...

  6. Linux - awk 文本处理工具二

    awk 判断格式 awk '{print ($1>$2)?"第一排"$1:"第二排"$2}' # 条件判断 括号代表if语句判断 "?" ...

  7. linux awk 文本分析实例 [视频]

    实例: 点我打开哔哩哔哩 实战: 点我打开哔哩哔哩 以下是一个分享: ➜ log Time Now 16:23:35 > awk '/Installed/' yum.log* | awk -F ...

  8. AWK文本处理工具(Linux)

    AWK文本处理工具(Linux) PS:刚开始实习,就给了个处理百万级别数据的任务,以前学过SHELL的一些东西sed/awk之类的处理,但是也没有具体的应用,只是在10几行10几列的小数据操作过,所 ...

  9. Linux的文本处理工具浅谈-awk sed grep

    Linux的文本处理工具浅谈 awk   老大 [功能说明] 用于文本处理的语言(取行,过滤),支持正则 NR代表行数,$n取某一列,$NF最后一列 NR==20,NR==30 从20行到30行 FS ...

  10. awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一

    awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...

随机推荐

  1. [C++STL教程]4.map超强的容器,它终于来了!零基础都能理解的入门教程

    之前我们介绍过vector, queue, stack,他们都有一个共同的特点,就是都可以用线性表来模拟.今天我们来学习一个全新且高封装性的容器:map. 作者:Eriktse 简介:19岁,211计 ...

  2. Django笔记八之model中Meta参数的使用

    前面介绍了 model 的字段属性,字段类型,这篇笔记介绍一下 model 的 Meta 选项. 这个选项提供了一些参数,比如排序(ordering),表名(db_table)等. 但这都不是必需的, ...

  3. 股票数据Scrapy爬虫实例(亲测有效)

    步骤: 步骤1:建立工程和Spider模板 scrapy startproject BaiduStocks cd BaiduStocks scrapy genspider stocks baidu.c ...

  4. 传输层和网络层的checksum区别,TCP cksum为何包含伪首部

    一直搞不清传输层和网络层的校验和为什么校验内容不一样,最近问了一些前辈,找寻了一些答案,总结一下自己的思考. 先说一下传输层(TCP)和网络层(IP)的校验和: TCP校验和有伪首部.TCP herd ...

  5. gulp中解决es5转es6的方法

    1:安装配置文件: cnpm i gulp-babel@7 babel-core -D  (@7是因为要使 "gulp-babel": "^7.0.1" 与&q ...

  6. Oracle_表空间

    Oracle 表空间 在执行具体的操作之前,由于Oracle不允许删除现有临时表空间,所以在删除现有临时表空间时要终止现有的实时会话. 查询Oracle表空间名称,表空间物理文件路径 查询临时表空间: ...

  7. 重新编译Unity Mono遇到的坑,大坑,巨坑!!!

    因为项目需要,要整一个DLL热更功能,本身也想对DLL进行加密,所以需要修改Mono的代码,并重新编译.参考了网上的教程后,决定在linux下做重编的工作. 然而在实际执行的时候,一开始就碰到了巨大的 ...

  8. 人人都学会APP开发 提高就业竞争力 简单实用APP应用 安卓浏览器APP 企业内部通用APP制作 制造业通用APP

    安卓从2009年开始流程于手机.平板,已经是不争的非常强大生产力工具,更为社会创造非常高的价值, 现在已经是202X年,已经十几年的发展,安卓平台已经无所不在. 因此建议人人都学学APP制作,简易入门 ...

  9. 【装饰器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

    简介 装饰器模式(Decorator Pattern)是一种结构型设计模式.将对象放入到一个特殊封装的对象中,为这个对象绑定新的行为,具备新的能力,同时又不改变其原有结构. 如果你希望在无需修改代码的 ...

  10. day03-搭建微服务基础环境02

    搭建微服务基础环境02 3.创建使用会员微服务模块-service consumer 3.1需求分析 浏览器向service consumer请求某个数据,service consumer会去向ser ...