1. sed和awk有什么区别?

(1)awk:按列(域)操作;sed:按行操作

(2)awk:文本处理语言,适合对文本进行抽取处理;sed:非交互式的编辑器,适合对文本进行编辑



2. awk要处理域的时候,以哪个参数作为分割参数?

-F

3. 请打印出/etc/passwd 第一个域,并且在第一个域所有的内容前面加上“用户帐号:”

# cat /etc/passwd |awk -F: '{print"用户帐号:"$1}'



4. 请打印出/etc/passwd 第三个域和第四个域

# awk -F: '{print $3"\t"$4}' /etc/passwd

5. 匹配/etc/passwd 第三域大于100的显示出完整信息

# cat /etc/passwd |awk -F: '{if($3>100) print$0}'



6. 请打印第一域,并且打印头部信息为:这个是系统用户,打印尾部信息为:"================"

# cat /etc/passwd |awk -F: 'BEGIN{print "这个是系统用户"} {print $1} END{print "================"}'



7. 打印行号小于15的,并且最后一域匹配bash的信息.

# cat /etc/passwd |awk -F: '{if($NR<15 && $NF~/bash/) print$0}'



8. 请打印出第一域匹配daemon的信息.

# cat /etc/passwd |awk -F: '$1=="daemon"'



10. 请打印出第三域数字之和

# cat /etc/passwd |awk -F: '{sum=sum+$3}END{print sum}'

# cat /etc/passwd |awk -F: '{sum=sum+$3};END{print sum}'



11. 请将/etc/passwd 中的root替换成gongda,记住是临时替换输出屏幕看到效果即可.

# cat /etc/passwd |awk -F: 'gsub(/root/,"gongda") {print $0}'



12. 请匹配passwd最后一段域bash结尾的信息,有多少条

# awk -F: '($NF~/bash/){print NR}' /etc/passwd |wc -l

# cat /etc/passwd |awk -F: '{if($NF~/bash/) print$0}'|wc -l

13. 请同时匹配passwd文件中,带mail和bash的关键字的信息

# cat /etc/passwd |awk -F: '$0~/root|mail/'

# awk -F: '{if($0~/mail/ || $0~/bash/) print $0}' /etc/passwd

14. 请匹配passwd第三域总大于500的相关信息.

# cat /etc/passwd |awk -F: '{if($3>500) print $0}'

15.编写文件file的内容如下:

Mike Harrington:[510] 548-1278:250:100:175

Christian Dobbins:[408] 538-2358:155:90:201

Susan Dalsass:[206] 654-6279:250:60:50

Archie McNichol:[206] 548-1348:250:100:175

Jody Savage:[206] 548-1278:15:188:150

Guy Quigley:[916] 343-6410:250:100:175

Dan Savage:[406] 298-7744:450:300:275

Nancy McNeil:[206] 548-1278:250:80:75

John Goldenrod:[916] 348-4278:250:100:175

Chet Main:[510] 548-5258:50:95:135

Tom Savage:[408] 926-3456:250:168:200

Elizabeth Stachelin:[916] 440-1763:175:75:300

其中:

Mike Harrington 名字

[510] 548-1278  电话

250:100:175     过去三个月里的捐款



(1)显示所有电话号码

# awk -F: '{print $2}' file



(2)显示Dan的电话号码

# awk -F: '{if($1~/Dan/) print$2}' file 



(3)显示Susan的名字和电话号码

# awk -F: '{if($1~/Susan/) print$1,$2}' file 



(4)显示所有以D开头的姓

# awk -F: '{if($1~/^D/) print$1}' file 



(5)显示所有以一个C或E开头的名

# awk -F: '{if($1~/^[C|E]/) print$1}' file



(6)显示所有只有四个字符的名,这里可以使用length函数,举例: length($1)==10 $1字符为10

# cat file |awk -F: '{print$1}'|awk '{if(length($1)==4) print $1}'



(7)显示所有区号为916的人名

# cat file |awk '{print$2}'|awk -F: '{if($2~/916/) print$1}'



(8)显示Mike的捐款.显示每个值时都有以$开头.如$250$100$175

# cat file |awk -F: '{if($1~/Mike/) print "$"$3"$"$4"$"$5}'



(9)显示姓,其后跟一个逗号和名

# cat file |awk -F: '{print$1}'|awk '{print$2","$1}'

awk练习题的更多相关文章

  1. [shell练习]——awk练习题

    1. sed和awk有什么区别? (1)awk:按列(域)操作:sed:按行操作(2)awk:文本处理语言,适合对文本进行抽取处理:sed:非交互式的编辑器,适合对文本进行编辑 2. awk要处理域的 ...

  2. awk练习题-v参数

    [xxxx.com]a=123bsas=sa2asd=a12ip=ip123[ooo.com]asd12=1223ip=ip123xas=123[xxoo.cn]asas=123sip=xs12213 ...

  3. [shell基础]——awk命令

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

  4. awk shell

    作业一:整理博客,内容包含awk.变量.运算符.if多分支 awk   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 2 ...

  5. AWK编程

    1.awk的概述 文本处理工具,由于功能的强大,也可以当做是一种数据操作语言,非常适合结构化数据的处理和格式化报表的生成,awk可以进行样式装入.流控制.数学运算符.甚至于内置的变量和函数.它具备了一 ...

  6. [转]shell awk sed tr grep 语法汇总

    tr 基本语法 -c          # 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII  -d          # 删除字符串1中所有输入字符  -s          # 删除所 ...

  7. centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符 通配符 特殊符号. * + ? 总结 问加星 cat -n nl 输出文件内容并加上行号 alias放~/.bash_profile 2015-4-10 第十三节课

    centos 正则,grep,egrep,流式编辑器 sed,awk -F 多个分隔符  通配符 特殊符号. * + ? 总结  问加星 cat -n  nl  输出文件内容并加上行号 alias放~ ...

  8. 行列转换文本处理--awk xargs 回顾

    awk 数组回顾: 9.1 数组 举例:统计当前主机上每一个TCP连接状态以及每种连接状态的数目[非常实用] # netstat -tan | awk '/^tcp/{STATE[$NF]++}END ...

  9. 转:使用awk命令获取文本的某一行,某一列

    1.打印文件的第一列(域)                 : awk '{print $1}' filename2.打印文件的前两列(域)                 : awk '{print ...

随机推荐

  1. 自定义工作流活动报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。

    本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复265或者20170926可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me ...

  2. 关于js浮点数计算精度不准确问题的解决办法

    今天在计算商品价格的时候再次遇到js浮点数计算出现误差的问题,以前就一直碰到这个问题,都是简单的使用tofixed方法进行处理一下,这对于一个程序员来说是及其不严谨的.因此在网上收集了一些处理浮点数精 ...

  3. #翻译#原文来自Database.System.Concepts(6th.Edition.2010)2.6Relational Operations,原文作者Abraham Silberschaz , Henry F. Korth , S. Sudarshan

    2.6关系操作 所有的过程关系查询语言都提供一组操作,这些操作可以应用于单个关系或一对关系.这些操作具有良好的和期望的属性,它们的结果总是一个单一的关系.这个属性允许一个以模块化的方式组合其中的几个操 ...

  4. Hive简记

    在大数据工作中难免遇到数据仓库(OLAP)架构,以及通过Hive SQL简化分布式计算的场景.所以想通过这篇博客对Hive使用有一个大致总结,希望道友多多指教! 摘要: 1.Hive安装 2.Hive ...

  5. 配置和启动Kubernetes服务

    安装etcd服务 下载安装包 wget https://github.com/coreos/etcd/releases/download/v3.1.3/etcd-v3.1.3-linux-amd64. ...

  6. EXISTS/NOT EXISTS CASE WHEN等使用方法

    --简单判断用法 WHERE EXISTS (SELECT * FROM cpay..System_Setting) --可以替换count ) FROM cpay..System_Setting U ...

  7. WPF: ShowDialog() 切换到其他应用窗口后,再切换回来无法让子窗口总在最上方

    按说ShowDialog()是模态窗口,应该在主窗口的上方,但是打开其他应用窗口再切换回来的时候,发现子窗口不见了,主窗口又不能操作. 另外子窗口设置成不在任务栏显示,只能通过Alt-Tab来切换到子 ...

  8. JSONP、图片Ping、XMLHttpRequest2.0等跨域资源请求(CORS)

    跨域:当协议.主域名.子域名.端口号中任意一个不相同时都不算同一个域,而在不同域之间请求数据即为跨域请求.解决方法有以下几种(如有错误欢迎指出)以请求图片url为例: 1.通过XMLHttpReque ...

  9. SQL Server2008安装教程

    SQL Server2008安装教程   第一步,打开文件,点击开始安装: 第二步,打开后点击左边项的安装,选择右边第一项: 第三步,点击确定: 第四步,选择接受服务条款,点击下一步: 第五步,按着一 ...

  10. Java Web开发——MySQL数据库的安装与配置

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RD ...