Linux 文本三剑客之 awk
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的更多相关文章
- linux文本分析利器awk
转 快速理解linux文本分析利器awk 原文链接 杜亦舒 性能与架构 awk是什么 如果工作中需要操作linux比较多,那么awk是非常值得学习的 awk是一个极其强大的文本分析工具,把文件逐行的读 ...
- Linux文本三剑客超详细教程---grep、sed、awk
awk.grep.sed是linux操作文本的三大利器,合称文本三剑客,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单 ...
- Linux文本三剑客总结
Linux文本处理三剑客 grep 文本过滤(模式:pattern)工具 grep, egrep, fgrep(不支持正则表达式搜索) grep grep: Global search REgula ...
- 007 Linux 命令三剑客之-awk
01 一起来认识 awk! Linux 命令三剑客,sed.grep.awk. sed:擅长数据修改. grep:擅长数据查找定位. awk:擅长数据切片,数据格式化,功能最复杂. awk 更适合格式 ...
- 文本三剑客之awk
awk和流编辑器sed在工作原理和用法上有很多类似之处,它们都是检查输入数据中的行是否匹配指定的模式,如果匹配成功就对匹配的行执行相应的操作,重复这个过程直到所有的输入数据都被处理完,因此awk和se ...
- Linux文本三剑客
grep 文本过滤工具. 作用: 文本搜索工具,根据用户指定的行进行匹配检查,打印匹配到的行. 模式: 由正则表达式字符及文本字符所编写的过滤条件. grep的使用 语法: grep [OPTION ...
- Linux 文本三剑客之 sed
Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...
- Linux 文本三剑客之 grep
Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...
- Linux文本处理命令 -- awk
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
随机推荐
- 【PHP数据结构】链表的相关逻辑操作
链表的操作相对顺序表(数组)来说就复杂了许多.因为 PHP 确实已经为我们解决了很多数组操作上的问题,所以我们可以很方便的操作数组,也就不用为数组定义很多的逻辑操作.比如在 C 中,数组是有长度限制的 ...
- Java面向对象系列(3)- 回顾方法的调用
方法的调用 静态方法 非静态方法 形参和实参 值传递和引用传递 this关键字(继承篇讲解) 静态方法 非静态方法 形参和实参 package oop.demo01; public class Dem ...
- IDEA - 2019中文版安装教程
前言 个人安装备忘录 软件简介 IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持. ...
- eps出坑出坑
1 visio格式转eps 先将Visio保存为pdf格式文件 使用adobe acrobat编辑pdf 先将文件裁剪至所需大小 随后点编辑,选择全选,然后文件,导出到,内嵌postscript 2 ...
- redis代替mybatis做缓存
将redis作为缓存 <dependencies> <dependency> <groupId>org.springframework.boot</group ...
- django url配置-反向解析-视图函数-HttpRequest对象-HttpResponse对象-cookies-session-redis缓存session
""" --视图概述:-- 作用:视图接受WEB请求,并响应WEB请求 本质:视图就是一个python中的函数 响应: 1.网页: 一.重定向 二.错误视图 400,50 ...
- Python生成桌面应用
1.cd进入project所在根目录 2.pyinstaller -F demo.py --noconsole 3.自定义图标 选择ico格式图标发在project目录 4.pyinstaller - ...
- Kafka与RocketMq文件存储机制对比
一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一. 开头问题 kafka文件结构和rocketMQ文件结构是什么样子?特点是什么? 一.目录结构 Kafk ...
- Batch Normalization和Layer Normalization
Batch Normalization:对一个mini batch的样本,经过一个nueron(或filter)后生成的feature map中的所有point进行归一化.(纵向归一化) Layer ...
- 5-基本的sql查询以及函数的使用
基本SQL查询语句以及函数的使用 格式元素 描述 YYYY 四位的年份 MONTH 月份的英文全称 MON 月份的英文简写 MM 月份的数字表示 DD 日起的1-31数字表示 D 星期几的数字表示1- ...