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

最新文章

  1. Datatables事件
  2. .NET4.5 异步编程 async和await
  3. win10搭建代理服务器实现绕过校园网的共享限制--从入门到放弃
  4. iOS开发--项目内存优化
  5. 【转】rvm安装ruby,gem,rails,之后仍然无法找到rails命令
  6. UVA 10608 Friends
  7. 基于jsp+servlet图书管理系统之后台用户信息查询操作
  8. Python 基于TK 文本编辑器
  9. [国嵌笔记][019][Eclipse集成开发环境]
  10. js基础进阶--图片上传时实现本地预览功能的原理
  11. Eclipse启动报错An internal error occurred during: &quot;Initializing Java Tooling&quot;
  12. Java操作文件Util
  13. ubuntu 搭建ss和使用方法
  14. t检验,T Test (Student’s T-Test)
  15. Codeforces Round #106 (Div. 2) D. Coloring Brackets 区间dp
  16. jq 跳转方式汇总
  17. swift - 之 UIColor使用自定义的RGB配色
  18. Windows服务器管理与优化
  19. PDO execute 执行错误
  20. Hive 数据倾斜原因及解决方法(转)

热门文章

  1. (Opencv07)绘制边框
  2. vue中this.$router.push()路由传值和获取的两种常见方法
  3. appium的安装和环境配置教程
  4. 使用scrapy搭建大型爬虫系统
  5. 内置函数 字符串的复制 strcpy
  6. 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)(转载)
  7. Build Web Server with Apache and Passenger
  8. JVM学习笔记-第七章-虚拟机类加载机制
  9. 第8篇-dispatch_next()函数分派字节码
  10. Sqli-Labs less32-37