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. Tom_No_02 Servlet向流中打印内容,之后在调用finsihResponse,调用上是先发送了body,后发送Header的解释

    上次在培训班学上网课的时候就发现了这个问题,一直没有解决,昨天又碰到了,2-3小时也未能发现点端倪,今早又仔细缕了下,让我看了他的秘密 1.Servlet向流中打印内容,之后在调用finsihResp ...

  2. create-react-app 创建的项目执行npm run eject后,运行报错

    create-react-app 创建的项目执行npm run eject后,运行报错:Cannot find module '@babel/plugin-transform-react-jsx-so ...

  3. HashSet 和 HashMap 的比较

    HashMap 和 HashSet 都是 collection 框架的一部分,它们让我们能够使用对象的集合.collection 框架有自己的接口和实现,主要分为 Set 接口,List 接口和 Qu ...

  4. Android 帧动画使用

    帧动画 使用一系列不同的图片,然后像一卷胶卷一样按顺序播放,这是一种传统的动画,也可称为帧动画.也可以比喻为像一卷胶卷一样按顺序播放. 播放起来,有点像在看gif图. 本文介绍使用AnimationD ...

  5. 最全总结 JavaScript Array 方法详解

    JavaScript Array 指南.png Array API 大全 (公众号: 前端自学社区).png 前言 我们在日常开发中,与接口打交道最多了,前端通过访问后端接口,然后将接口数据二次处理渲 ...

  6. centos7 下安装docker报错:You could try using...

    搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...

  7. rot位移密码详解(rot5、rot13、rot18、rot47)

    最近训练CTF的时候,发现密码学这块的知识不太系统,所以自己接下来会陆陆续续整理出来 rot密码 rot密码其实可以看作是凯撒密码的一种变式 本质都是移位运算 rot密码按种类大致分为以下几类 rot ...

  8. vulnhub靶机-XXE Lab 1

    目录 信息收集 漏洞利用 信息收集 扫描目标主机,ip为192.168.88.154 nmap扫描结果 存在robots.txt文件.直接访问其中的admin.php显示404,加一层目录访问/xxe ...

  9. i春秋CTF-web-upload

    ------------恢复内容开始------------ 记一道文件上传的题目. 题目告诉我们随意上传,第一想到的当然给他上传一个木马文件然后蚁剑拿shell,上传之后可以在源码里查看我们上传的文 ...

  10. 【LeetCode】424. 替换后的最长重复字符

    424. 替换后的最长重复字符 知识点:字符串,滑动窗口: 题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含 ...