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. 记录maven 整合SSM框架

    一.新建maven项目 建好的项目结构如下图: 还需要做以下配置: 勾选上这两项后,就会自动生成 "src/main/java"   和 "src/main/resour ...

  2. Symbol

    ES5 的对象属性名都是字符串,这容易造成属性名的冲突.比如,你使用了一个他人提供的对象,但又想为这个对象添加新的方法(mixin 模式),新方法的名字就有可能与现有方法产生冲突.如果有一种机制,保证 ...

  3. pdf点击超链接后返回:alt+ 向左 /向右

    pdf点击超链接后返回:alt+ 向左 /向右

  4. 01背包java实现(入门到精通)

    一.什么是01背包 01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn.01背包是背包问题中最简单的问题.01背包的约束条件是给定 ...

  5. hdu4081(秦始皇的道路系统)

    During the Warring States Period of ancient China(476 BC to 221 BC), there were seven kingdoms in Ch ...

  6. Reshape the Matrix

    In MATLAB, there is a very useful function called 'reshape', which can reshape a matrix into a new o ...

  7. Centos7 创建本地 docker 仓库极其遇到的问题

    环境安装: VirtualBox 安装 Centos7 安装 docker 1. 配置私有仓库和客户端地址 私有仓库:192.168.1.104 客户端:192.168.1.103 通过 Centos ...

  8. httpd日志和日志轮替工具

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  9. unserialize() [function.unserialize]: Error at offset

    $a = 'a:1:{i:0;s:12:"1,10,93,";}'; var_dump( unserialize( $a ) ); 运行之后页面上显示Notice: unseria ...

  10. 解决-Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HO问题

    原因:因为你的编译工具(eclipse/Myeclipse...)没有添加jdk.添加M2_HOME的环境变量. 解决: ①:window->Preferences->java->I ...