awk 命令-随笔
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 命令-随笔的更多相关文章
- linux awk命令详解
linux awk命令详解 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分 ...
- awk命令详解
搜索 纠正错误 添加实例 awk 文本和数据进行处理的编程语言 补充说明 awk 是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入(stdin).一个或多个文件 ...
- Linux安全基础:awk命令的使用
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- AWK命令学习
使用方法 awk 'pattern {action}' {filenames} 尽管操作可能会很复杂,但语法总是这样,其中 pattern 表示 AWK 在数据中查找的内容,而 action 是在找到 ...
- awk 命令
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...
- AWK命令的用法
1.awk命令简介: awk是一种可以处理数据.产生格式化报表的语言,功能十分强大. awk的工作方式是读取数据,将每一行数据视为一条记录(record)每笔记录以字段分隔符分成若干字段,然后输出各个 ...
- [Linux] linux awk命令详解
reference : http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于g ...
- awk命令简单介绍
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- Linux的awk命令
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
随机推荐
- videojs踩过的坑
1.videojs-contrib-hls 在webpack中不能用,解决方法:window.videojs = videojs:出处 https://github.com/videojs/video ...
- 【LeetCode】297. 二叉树的序列化与反序列化
297. 二叉树的序列化与反序列化 知识点:二叉树:递归 题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一 ...
- joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞
影响版本: 3.7.0 poc http://192.168.49.2:8080/index.php?option=com_fields&view=fields&layout=moda ...
- Netty 源码分析系列(二)Netty 架构设计
前言 上一篇文章,我们对 Netty做了一个基本的概述,知道什么是Netty以及Netty的简单应用. Netty 源码分析系列(一)Netty 概述 本篇文章我们就来说说Netty的架构设计,解密高 ...
- AJAX的学习与使用>前端技术系列
目录 AJAX的学习与使用 什么是AJAX 为什么要使用AJAX AJAX接收服务器响应数据的3种格式 文本格式(重要) JSON格式(重要) 服务器端响应实体类JSON格式的3种方式 修改实体类的t ...
- ORACLE ORA-00933: SQL 命令未正确结束,
这个错误害我花了一天时间排查,最后原来是因为结束符,这种语句不能是分号,将分号即可执行成功. MERGE INTO MO_TRADE_COUNT_DAY A USING ( SELECT MAX(fl ...
- 桌面小部件AppWidgetProvider简单分析
1.一般桌面小部件涉及到的类 AppWidgetProvider :BroadcastRecevier子类,用于接收更新,删除通知 AppWidgetProvderInfo:AppWidget相关信息 ...
- Yara规则学习
01 定义 官网: YARA is a tool aimed at (but not limited to) helping malware researchers to identify and c ...
- no-strings-attached writeup
no-strings-attach writeup 1.程序分析 主函数如图所示,关键函数在authenticate中,进入函数. 分析可得,decrypt代码段为关键代码段,进入关键函数decryp ...
- .Net Core+分布式配置中心(AgileConfig)
GitHub上AgileConfig非常详细,以下只是本人学习过程的整理 一.介绍 1.参考地址 https://github.com/dotnetcore/AgileConfig https://w ...