目录

一、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. AES算法流程

    明文分组长度: \(128bit\) 密钥长度: \(128bit\) 迭代轮数: \(10轮\) 加密和解密均在\(4*4\)的矩阵上进行,每个格子\(1\)个字节,共\(16\)个字节\(128b ...

  2. 快来玩AI画图!StableDiffusion模型搭建与使用入门~

    前言 最近AI很火,先是AI画图,然后就ChatGPT,后者我已经用了一段时间了,用来写作文挺不错的,但OpenAI屏蔽了中国IP,加上用户太多啥的,用起来没那么爽,但没办法全球只此一家,只能捏着鼻子 ...

  3. [ACM]NOIP2011D1T1复现-铺地毯

    逆向考虑即可解决 #include<iostream> using namespace std; const int maxn= 100000 +5; int a[maxn][4];//0 ...

  4. [网络]公共网络安全漏洞库: CVE / CNCVE

    本文博主的经历与该博文处理绿盟科技安全评估的系统漏洞 - 博客园的经历相同: 处理[第三方网络安全公司]给[公司产品]的[客户的服务器]扫描后生成的[安全漏洞报告]. 1 前言 以网络安全行业中最大的 ...

  5. vs的常用配置【以及vs常用的快捷键】

    1.颜色设置 (1) 编译器的主题颜色设置 (2) 字体和颜色设置 (3) 字体大小 更快捷的修改字体大小方式:ctr+鼠标滚轮 2.行号设置 默认就有,不用设置了 3.把解决方案资源管理器移动到左边 ...

  6. MySQL(三)数据目录

    目录 Mysql的主要目录结构 1 数据库文件的存放路径 /var/lib/mysql/ 2 相关命令目录 /usr/bin/mysql /usr/sbin/mysql 3 配置文件目录 /usr/s ...

  7. c/c++零基础坐牢第三天

    c/c++从入门到入土(3) 开始时间2023-04-17 19:07:20 结束时间2023-04-17 20:53:40 前言:经过三天的算法训练,大家肯定对后面的编程知识产生浓厚的兴趣,有了前两 ...

  8. Azure DevOps(一)基于 Net6.0 的 WPF 程序如何进行持续集成、持续编译

    一,引言 我们是否正在为如何快速的编译.部署客户端应用程序而烦恼?这也是博主最近遇到的问题.目前博主所在公司主要做项目级的定制化开发,多以 C/S 架构的 WPF 程序为主,每次到了协助开发团队给实施 ...

  9. Python argparse参数管理学习笔记1

    1.前言 最近尝试学习使用argparse进行参数管理,顺便改善一下我那丝毫都不专业的.简单粗暴的代码习惯. argparse模块可以让人轻松地编写用户友好地命令行接口,并且还能够自动生成帮助与使用手 ...

  10. java RSA生成公钥和私钥

    1.随机生成密钥对 /** * 随机生成密钥对 * @throws NoSuchAlgorithmException */ public static void genKeyPair() throws ...