awk语法:

awk [option] 'pattern{action}' file ...

awk [参数] '条件{动作}' 文件 ...

解析:

命令: awk

参数: -F

"": 分隔符 (可为正则表达式(如:[=-.],多个相同字符后加“+”))

条件{动作}': 可指定某列条件(变量) 判断条件有 {动作 后跟输出列、行信息 注意:多列用逗号“,”分隔}

$1 表示第一列 大于> {print $1} 表示显示第一列

$0 表示整行 小于< {print $0} 表示显示整行

$NR 表示行号 等于== {print NR} 表示显示行号

$NF 表示最后一列 ^以什么开头 {print $NF} 表示显示最后一列

$(NF-n) 表示倒数第几列 以什么结尾$ {print $(NF-n)} 表示显示倒数第几列

/匹配的元素/ {print NR,$1,$(NF-1),$NF} 多列用逗号“,”分隔

文件名: files

练习:tt.txt

学号 姓名 外语 数学 三科综合 语文 体育 电脑 身高(cm)

1 zengqinghu 42 96 118 150 91 100 181

2 wangchangbin 57 98 80 148.5 70 100 172

3 suweipeng 86 100 92 148 79.5 100 170

4 wangxiaoteng 68.5 100 104 149 84 99 173

5 liupeng 54 100 139.5 97 92 100 184

6 suxubo 82 95 60.5 147 85 100 182

7 guowei 70 100 125 148 76.5 100 201

8 jiangjunning 88 100 103 99 80 100 191

9 zhanggang 43 100 74.5 150 76.5 100 210

10 hezixing 71 100 52.5 145 79 95 185

从小到大顺出hezixing的各科成绩

awk 'NR==11{print $5,$3,$7,$8,$4,$6}' tt.txt

52.5 71 79 95 100 145

显示外语列分数在80分以上人员的学号及身高

cat tt.txt|awk '$3>80{print $0}' |awk '{print $1,$NF}'

学号 身高(cm)

3 170

6 182

8 191

取tt.txt文件的第2行到第3行的内容

awk 'NR2,NR3{print $0}' tt.txt

1 zengqinghu 42 96 118 150 91 100 181

2 wangchangbin 57 98 80 148.5 70 100 172

找出姓名为suxubo的行并显示

awk '/suxubo/ {print $0}' tt.txt

6 suxubo 82 95 60.5 147 85 100 182

awk '/suxubo/' tt.txt

6 suxubo 82 95 60.5 147 85 100 182

显示不含有wangxiaoteng的行

awk '$2!~/wangxiaoteng/' tt.txt

学号 姓名 外语 数学 三科综合 语文 体育 电脑 身高(cm)

1 zengqinghu 42 96 118 150 91 100 181

2 wangchangbin 57 98 80 148.5 70 100 172

3 suweipeng 86 100 92 148 79.5 100 170

5 liupeng 54 100 139.5 97 92 100 184

6 suxubo 82 95 60.5 147 85 100 182

7 guowei 70 100 125 148 76.5 100 201

8 jiangjunning 88 100 103 99 80 100 191

9 zhanggang 43 100 74.5 150 76.5 100 210

10 hezixing 71 100 52.5 145 79 95 185

取文件的学号列、姓名列和身高列内容,并打印行号

awk '{print NR,$1,$2,$NF}' tt.txt

1 学号 姓名 身高(cm)

2 1 zengqinghu 181

3 2 wangchangbin 172

4 3 suweipeng 170

5 4 wangxiaoteng 173

6 5 liupeng 184

7 6 suxubo 182

8 7 guowei 201

9 8 jiangjunning 191

10 9 zhanggang 210

11 10 hezixing 185

显示wangxiaoteng的外语成绩

awk '$2~/wangxiaoteng/ {print $3}' tt.txt

68.5

过滤下中三科综合列中分数大于90,且小于135的人名和身高

awk '$5>90&&$5<135 {print $2,$NF}' tt.txt

zengqinghu 181

suweipeng 170

wangxiaoteng 173

guowei 201

jiangjunning 191

awk 命令-随笔的更多相关文章

  1. linux awk命令详解

    linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...

  2. awk命令详解

    搜索 纠正错误  添加实例 awk 文本和数据进行处理的编程语言 补充说明 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件 ...

  3. Linux安全基础:awk命令的使用

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

  4. AWK命令学习

    使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...

  5. awk 命令

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

  6. AWK命令的用法

    1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...

  7. [Linux] linux awk命令详解

    reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...

  8. awk命令简单介绍

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

  9. Linux的awk命令

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

随机推荐

  1. php 随机生成字符串

    private function createNonceStr($length = 16) { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJK ...

  2. SQL Server 判断表名称、索引、表字段是否存在

    1.判断索引是否存在 ps:@tableName 表名称, @indexName 索引名 IF EXISTS (SELECT 1 FROM sys.indexes WHERE object_id=OB ...

  3. 分布式事务最终一致性-CAP框架轻松搞定

    前言 对于分布式事务,常用的解决方案根据一致性的程度可以进行如下划分: 强一致性(2PC.3PC):数据库层面的实现,通过锁定资源,牺牲可用性,保证数据的强一致性,效率相对比较低. 弱一致性(TCC) ...

  4. 在游戏中播放cg视频遇到的问题

    遇到问题 我们线上手游要给港澳台用户增加cg视频,在我之前文章中已经讲到了我们是怎么在unity中播放cg的--><使用AVPro Video在Unity中播放开场视频(CG)笔记> ...

  5. javaScript学习关于节点

    节点的常用属性和方法: 个人理解,对于节点来说,他就是html里面的标签对象. 通过具体的元素节点调用: getElementsByTagName()方法,获取当前节点的指定标签名孩子节点 appen ...

  6. 跟我一起写 Makefile(九)

    使用函数 ---- 在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能.make所支持的函数也不算很多,不过已经足够我们的操作了.函数调用后,函数的返回值可以当做 ...

  7. MyBatis学习05(多对一和一对多)

    8.多对一的处理 多对一的理解: 多个学生对应一个老师 如果对于学生这边,就是一个多对一的现象,即从学生这边关联一个老师! 数据库设计 CREATE TABLE `teacher` ( `id` IN ...

  8. pikachu Unsafe Fileupload

    不安全的文件上传漏洞概述文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像.上传附件等等.当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型.后缀名.大小等等, ...

  9. SIM900A—基础指令

    文章目录 1.ATE指令设置回显 2.ATQ指令设置返回 3.ATV指令设置返回格式 4.AT+CFUN设置模块功能 5.AT+IPR设置波特率 6.AT+CMEE设置上报错误格式 7.各种码(IME ...

  10. 对象池在 .NET (Core)中的应用[1]: 编程体验

    借助于有效的自动化垃圾回收机制,.NET让开发人员不在关心对象的生命周期,但实际上很多性能问题都来源于GC.并不说.NET的GC有什么问题,而是对象生命周期的跟踪和管理本身是需要成本的,不论交给应用还 ...