awk练习题
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练习题的更多相关文章
- [shell练习]——awk练习题
1. sed和awk有什么区别? (1)awk:按列(域)操作:sed:按行操作(2)awk:文本处理语言,适合对文本进行抽取处理:sed:非交互式的编辑器,适合对文本进行编辑 2. awk要处理域的 ...
- awk练习题-v参数
[xxxx.com]a=123bsas=sa2asd=a12ip=ip123[ooo.com]asd12=1223ip=ip123xas=123[xxoo.cn]asas=123sip=xs12213 ...
- [shell基础]——awk命令
关于awk awk是一个强大的文本分析工具,相对于grep的查找.sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大. 简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开 ...
- 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 ...
- AWK编程
1.awk的概述 文本处理工具,由于功能的强大,也可以当做是一种数据操作语言,非常适合结构化数据的处理和格式化报表的生成,awk可以进行样式装入.流控制.数学运算符.甚至于内置的变量和函数.它具备了一 ...
- [转]shell awk sed tr grep 语法汇总
tr 基本语法 -c # 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII -d # 删除字符串1中所有输入字符 -s # 删除所 ...
- 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放~ ...
- 行列转换文本处理--awk xargs 回顾
awk 数组回顾: 9.1 数组 举例:统计当前主机上每一个TCP连接状态以及每种连接状态的数目[非常实用] # netstat -tan | awk '/^tcp/{STATE[$NF]++}END ...
- 转:使用awk命令获取文本的某一行,某一列
1.打印文件的第一列(域) : awk '{print $1}' filename2.打印文件的前两列(域) : awk '{print ...
随机推荐
- JVM(五)内存(Heap)分配
前面的两小节,我分享了一下JVM的垃圾回收算法和垃圾回收器,本节中,我们来看看JVM的内存分配到底是如何进行的,作为对前面两节内存回收的补充. 从前面的内存回收中我们了解到,Hotspot JVM中的 ...
- Java数据库 高级查询
插入数据记录 1.插入单行数据 语法: INSERT INTO 表名 [(字段名列表)] VALUES (值列表); 2.插入多行数据 语法:INSERT INTO 新表 (字段名列表) VALUE ...
- 【转载】关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案
关于api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案 目录 关于api-ms-win-crt-runtimel1-1-0dll缺失的解决方案 目录 安装VC redite ...
- TETELaser Cutting System 不连续吹起的问题
TETELaser Cutting System 不连续吹起的问题 :配置 加工参数-->机器参数-->信号灯和激光器报警:黄灯索引==EX14 红灯索引==EX15 绿灯索引= ...
- (一) .net core 2.0 初体验
1..net core 2.0环境 .net core 下载地址:https://www.microsoft.com/net/core#windowscmd 问题一:提示[Failed to load ...
- NOIP2017SummerTraining0705
个人感受:这一场考试是网开着的,然后第一题就水过了,第二三题应该是暴力吧,然后各水了50.拿了200分.排名第10. 问题 A: 重复字符串 时间限制: 1 Sec 内存限制: 256 MB提交: ...
- 用ESP8266+android,制作自己的WIFI小车(Android 软件)
先说一下这篇文章里面的内容:TCP 客户端, 自定义对话框, 自定义按钮, ProgressBar竖直显示, 重力感应传感器,手机返回键新开启界面的问题(返回上次的界面),数据保存 软件的通信是配合 ...
- 纯CSS3实现轮播图
前言 纯css3实现的轮播图效果,和JavaScript控制的相比,简单高效了很多,但是功能也更加单一,只有轮播不能手动切换. 用什么实现的呢?页面布局 + animation动画 HTML部分 &l ...
- Spring MVC Ajax 复杂参数的批量传递
要解决的问题: 如何组织客户端参数? Ajax 方法的配置属性如何定义才能传递复杂参数? 基于 SpringMVC 的服务端该如何接收? MyBatis 怎么处理批量更新? 客户端脚本 viewMes ...
- Android基础知识03—Activity的基本用法
------Activity 活动------ 活动 Activity 是一种包含用户界面的组件,即一个界面就是一个活动 创建活动的过程: >> 创建一个类,继承自Activity类,并且 ...