Linux 系统中一切皆文件。

文件是个文本。可以读、可以写,如果是二进制文件,还能执行。

在使用Linux的时候,大都是要和各式各样文件打交道。熟悉文本的读取、编辑、筛选就是linux系统管理员的必备技能

文本处理工具:grep、awk、sed,本篇主要讲 awk

awk 列提取命令,虽是列提取命令,但也要一行一行的来读入。对于 awk 命令来说,只要分隔开,不管是空格还是制表符,都可以识别为一列

一般格式:awk '条件1 {动作 1}······ 条件n {动作 n} '  文件

    常用:df -h | awk '{ print $5 }'   截取df命令结果的第5列的值

    注意:条件和动作由单引号包括起来,只要检测不到完整的单引号就不会执行

    指定分隔符:-F 指定分隔符 ,指定为分隔符时用单引号,其它时候用双引号
    cat student.txt | awk'$2 >= 80 {print $1}'

    

    上图命令的执行过程:

      1. 如果有 BEGIN 条件,则先执行 BEGIN 定义的动作。
      2. 如果没有 BEGIN 条件,则读入第一行,把第一行的数据依次赋予 $0、$1、$2 等变量。其中,$0 代表此行的整体数据,$1 代表第一个字段,$2 代表第二个字段。

      3. 依据条件类型判断动作是否执行。如果条件符合,则执行动作;否则读入下一行激据。如果没有条件,则每行都执行动作。

      4. 读入下一行数据,重复执行社步骤。

  awk流程制:
    "awk'NR==2{php1 =$3}NR==3{php2=$3};totle=php1+php2;print ""总分:"" totle}' student.txt#统计PHP成绩的总分"

  上面语句解释:
    "NR==2{php1=$3}"(条件是NR==2,动作是php=$3) 是指如果输入数据是第二行(第一行是标题行),就把第二行的第三个字段的值赋予变量"php1"。
    "NR==3{php2=$3}"同上;totle=php1+php2+php3;print"总分"totle定义变量 totle 的值是"php1+php2";最后输出"总分"关键字

Linux 文本三剑客之 awk的更多相关文章

  1. linux文本分析利器awk

    转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...

  2. Linux文本三剑客超详细教程---grep、sed、awk

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

  3. Linux文本三剑客总结

    Linux文本处理三剑客 grep 文本过滤(模式:pattern)工具 grep, egrep, fgrep(不支持正则表达式搜索) grep  grep: Global search REgula ...

  4. 007 Linux 命令三剑客之-awk

    01 一起来认识 awk! Linux 命令三剑客,sed.grep.awk. sed:擅长数据修改. grep:擅长数据查找定位. awk:擅长数据切片,数据格式化,功能最复杂. awk 更适合格式 ...

  5. 文本三剑客之awk

    awk和流编辑器sed在工作原理和用法上有很多类似之处,它们都是检查输入数据中的行是否匹配指定的模式,如果匹配成功就对匹配的行执行相应的操作,重复这个过程直到所有的输入数据都被处理完,因此awk和se ...

  6. Linux文本三剑客

    grep 文本过滤工具. 作用: 文本搜索工具,根据用户指定的行进行匹配检查,打印匹配到的行. 模式: 由正则表达式字符及文本字符所编写的过滤条件. grep的使用 语法:  grep [OPTION ...

  7. Linux 文本三剑客之 sed

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  8. Linux 文本三剑客之 grep

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  9. Linux文本处理命令 -- awk

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

随机推荐

  1. 让PHP能够调用C的函数-FFI扩展

    在大型公司中,一般会有很我编程语言的配合.比如说让 Java 来做微服务层,用 C++ 来进行底层运算,用 PHP 来做中间层,最后使用 JS 展现效果.这些语言间的配合大部分都是通过 RPC 来完成 ...

  2. Centos7.6安装python3.6.8

    yum -y install bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel libffi-devel tk-devel ...

  3. CF622F-The Sum of the k-th Powers【拉格朗日插值】

    正题 题目链接:https://www.luogu.com.cn/problem/CF622F 题目大意 给出\(n,k\),求 \[\sum_{i=1}^ni^k \] 解题思路 很经典的拉格朗日差 ...

  4. ServerManager.exe 0xc0000135 应用程序错误(Windows Server 2016、2019)

    前言 将 Windows Server 2019或2016 .NET Framework移除. IIS卸载后,服务器管理器.控制面板部分功能.事件查看器等都无法正常开启. 解决办法 打开CMD,输入D ...

  5. Docker-Compose的一些常用命令

    一.Docker-Compose简介 1.Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排. Docker-Co ...

  6. Java(一)——基础知识

    引言 之前一直对 Java 怀有固执的偏见,以为 Java 是编写前端的语言,作为一个机械生,非常抗拒去学它. 但是最近接触一点以后,完全改观了先前的看法,于是开启了对 Java 的大学习. 一.数据 ...

  7. AtCoder Beginner Contest 221 A~E题解

    目录 A - Seismic magnitude scales B - typo C - Select Mul D - Online games E - LEQ 发挥比较好的一场,就来搓篇题解. F ...

  8. npm install失败或者进度卡住解决办法 以及 nrm的使用

    今天在使用npm install安装url-loader时,遇到下载进度条停止问题 因为已经提前更换了 淘宝的镜像,应该不是网络问题,通过 npm config set loglevel info 显 ...

  9. HTML常用的css属性(及其简写)

    这篇文章主要介绍几个常用css属性和简写 本文目录: 1.背景属性 2.边框属性 3.字体属性 4.外边距 5.填充 6.颜色 1.background[背景属性] background-color ...

  10. JSR303数据校验

    Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理. 导入依赖: <dependency> <groupId>org ...