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}'

[shell练习]——awk练习题的更多相关文章

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

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

  2. AWK增强的文本处理shell特征--AWK完全手册

    AWK这是一个很好的文字处理工具. 它不仅 Linux 中也是不论什么环境中现有的功能最强大的数据处理引擎之中的一个. 本文主要摘录池中龙写的Unixawk使用手冊(第二版),对当中内容略微修改.感谢 ...

  3. CU社区shell板块awk十三问整理

    CU社区shell板块awk十三问整理 一.RS="" 当 RS="" 时,会将\n强制加入到FS变量中,因为RS为空时,是将连续多空行作为分隔符,近似于\n\ ...

  4. Shell 学习—AWK介绍

    Shell 学习—AWK = = = 安装awk root@kiki-desktop:~/shell# apt-get install gawk gawk-doc = = = awk 是一种程序语言. ...

  5. Shell之awk

    Shell之awk 目录 Shell之awk 一.awk概述 1. awk的工作原理 2. 命令格式 3. awk常见的内建变量(可直接用) 二.操作实例 1. 按行输出文本 2. 按字段输出文本 3 ...

  6. shell中awk用法

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

  7. shell 统计 awk

    time awk '{a[$1]++}END{for(i in a){printf("%d\t%s\n",a[i],i)}}' access.log | sort -nr | he ...

  8. shell 之awk 关联数组高级应用

    最近由于数据迁移过,有些用户信息需要再次确认下,也许数据量比较大,但是需要最终确认的比如说是用户ID和其对应的用户积分数,这样就会导致出现文本a(老的数据),文本b(新的数据).比如 这是文本a.tx ...

  9. shell脚本 awk工具

    awk工具概述awk编程语言/数据处理引擎基于模式匹配检查输入文本,逐行处理并输出通常在shell脚本中,或取指定的数据单独用时,可对文本数据做统计 命令格式格式一:awk [选项] '[条件]{编辑 ...

随机推荐

  1. 嵌入在C++程序中的extern "C"

    1.extern的作用 extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,可以告知编译器,用extern声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中 ...

  2. RAW格式

    一.什么是RAW文件?RAW文件主要是一种记录了数码相机传感器的原始信息,同时伴随着一些由相机所产生的一些元数据(metadata,诸如IS0的设置.快门速度.光圈值.白平衡等)的文件.不同的相机制造 ...

  3. git贡献代码流程

    1.本地创建ssh key: $ ssh-keygen -t rsa -C "your_email@youremail.com" 2.回到github,进入Account Sett ...

  4. 为Magento2新主题添加使用Grunt

    Go to \dev\tools\grunt\configs, open your themes.js file, and change it according to the following e ...

  5. How to index email and attachments in nsf files?

    My colleague she ask me why Intella could not handle Lotus Notes nsf e-mail archive files. I told he ...

  6. 解决win 7&win xp等系统无法正常用U盘安装或启动

    目前,制作启动U盘通常是用ultraiso,但由于各种硬件设备与系统的更新,导致现在装系统会出现各种错误. 在用ultraiso制作的启动U盘,装XP时,可能找不到引导项:装win7时,可能提示”wi ...

  7. 打造一个自动检测页面是否存在XSS的小插件

    前言: 还记得刚玩Web安全时,就想着要是能有一个自动挖掘XSS漏洞的软件就好了.然后我发现了Safe3.JSky.AWVS.Netsparker等等,但是误报太多,而且特别占内存.后来发现了fidd ...

  8. 设计模式-单例模式(Singleton)

    模式说明: 保证每一个类仅有一个实例,并提供一个访问它的全局访问点(即自行实例化并向整个系统提供这个实例). 应用场景: 1.如配置文件取值类AppConfig(本身实例化对象比较大,且没有必要实例化 ...

  9. 萝卜家园32位和64位Win7系统Ghost版

    新萝卜家园32位Win7系统Ghost版Sp1,官方旗舰版采用Windows7 SP1简体中文旗舰版32位(MSDN官方发布正式版原版ios镜像)制作,并能够完美自动激活,采用自由天空驱动包,解决部分 ...

  10. Setup Factory 程序打包

    1.检测是否已安装 在On Startup中写入如下代码: result1=Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\sohe ...