题目数据如下:

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

上面这个数据库的记录内容包括姓名、电话号码和最近3个月的竞选捐款数额。
.打印在第二个月捐款超过100美元的人的姓和名。
awk -F: '$4>100{print $1}' lab3.data
.打印在最后一个月捐款少于85美元的人的姓名和电话号码
awk -F: '$5<85{print $1,$2}' lab3.data
.打印第一个月捐款额在75~150美元之间的人。
awk -F: '$5>=75 && $5<=150 {print $1}' lab3.data
.打印这3个月的捐款总额不超过800美元的人。
awk -F: '$3+$4+$5 <= 800 {print $1}' lab3.data
.打印月均捐款额大于200美元的人的姓名和电话号码。
awk -F: '$3+$4+$5 > 600{print $1,$2}' lab3.data
.打印不在916区的人的姓。
awk -F"[ :]" '$3 !~ "916"{print $2}' lab3.data
.打印每条记录,并在记录前加上其记录号。
awk '{print NR,$0}' lab3.data
.打印每个人的姓名和捐款总额。
awk -F: '{print $1,$3+$4+$5}' lab3.data
.把Chet第二个月的捐款额加上10
awk -F: '/Chet/{$4=$4+10} {print $0}' lab3.data
.把 Nancy McNeil的名字改成Louise McInnes
awk -F: '/Nancy McNeil/{$1="Louise Mclnnes"} {print}' lab3.data

11.写出一个awk脚本输出以下信息

                       ***CAMPAIGN  CONTRIBUTIONS***
--------------------------------------------------------------------------------
NAME PHONE Jan | Feb | Mar | Total Donated
--------------------------------------------------------------------------------
Mike Harrington () - 250.00 100.00 175.00 525.00
Christian Dobbins () - 155.00 90.00 201.00 446.00
Susan Dalsass () - 250.00 60.00 50.00 360.00
Archie McNichol () - 250.00 100.00 175.00 525.00
Jody Savage () - 15.00 188.00 150.00 353.00
Guy Quigley () - 250.00 100.00 175.00 525.00
Dan Savage () - 450.00 300.00 275.00 1025.00
Nancy McNeil () - 250.00 80.00 75.00 405.00
John Goldenrod () - 250.00 100.00 175.00 525.00
Chet Main () - 50.00 95.00 135.00 280.00
Tom Savage () - 250.00 168.00 200.00 618.00
Elizabeth Stachelin () - 175.00 75.00 300.00 550.00
--------------------------------------------------------------------------------
SUMMARY
--------------------------------------------------------------------------------
The campaign received a total of $6137.00 for this quarter.
The average donation for the conrtibutors was $511.42.
The highest contribution was $450.00.
The lowest contribution was $15.00.
$ cat lab3.awk
#!/usr/bin/awk -f BEGIN{
FS=":"
print " ***CAMPAIGN 1998 CONTRIBUTIONS***"
print "--------------------------------------------------------------------------------"
print "NAME PHONE Jan | Feb | Mar | Total Donated"
print "--------------------------------------------------------------------------------"
min=1000.0
max=
total=
}
{
total+=$+$+$
if($<min)
min=$
if($<min)
min=$
if($<min)
min=$
if($>max)
max=$
if($>max)
max=$
if($>max)
max=$
printf "%-20s%14s %-6.2f %-6.2f %-6.2f %-6.2f\n",$,$,$,$,$,$+$+$
}
END{
print "--------------------------------------------------------------------------------"
print " SUMMARY "
print "--------------------------------------------------------------------------------"
printf "The campaign received a total of $%6.2f for this quarter.\n",total
printf "The average donation for the 12 conrtibutors was $%5.2f.\n",total/12.0
printf "The highest contribution was $%5.2f.\n",max
printf "The lowest contribution was $%4.2f.\n",min
}

awk练习笔记的更多相关文章

  1. linux awk学习笔记

    awk学习笔记 awk语法格式 awk '{pattern + action}' {filenames} awk作用 awk的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后 ...

  2. 【转】awk学习笔记

    Awk学习笔记 整理:Jims of 肥肥世家 <jims.yang@gmail.com> Copyright © 2004 本文遵从GPL协议,欢迎转载.修改.散布. 第一次发布时间:2 ...

  3. awk 学习笔记

    awk的语法有两种形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 选 ...

  4. sed、grep、awk -- 三剑客笔记记录

    sed常用操作笔记   1.删除文件最后一行: sed -i '$d' filename 2.递归替换内容:sed -i 's/内容A/内容B/g' filename sed -i "s/S ...

  5. sed and awk学习笔记

    sed and awk 背景 awk起源追溯至sed和grep,进而追溯至共同的行编辑器ed.实用工具grep来源于ed命令:g/re/p .实用工具awk和sed有一个共同的选项-f用于指定脚本的名 ...

  6. awk学习笔记二:调用shell、文件执行(转)

    awk 'BEGIN {print "Hello"}' 不操作文件直接处理数据流 要调用shell则可以用管道命令 如,打印日期awk 'BEGIN {"date&quo ...

  7. awk学习笔记一:基础(转)

    awk内置变量 ARGC 命令行参数个数ARGV 命令行参数排列ENVIRON 支持队列中系统环境变量的使用FILENAME awk浏览的文件名FNR 浏览文件的记录数FS 设置输入域分隔符,等价于命 ...

  8. 【转】 awk 学习笔记

    本文参考的是 ubuntu 下 gawk version 3.1.6 以及 <sed&awk> 一 . awk 简介 awk 是一种解释型(tawk除外)文本处理语言 二 . aw ...

  9. AWK读书笔记

    1.awk 'parttern {action}' filename 从文件中逐行读取并匹配parttern,若匹配成功执行action否则读取下一行. parttern和action都可选,若省略p ...

随机推荐

  1. sql 字符串函数、数学函数

    -- 字符函数:-- 查询结果姓名小写 select lower(ename), sal, job from emp;-- 查询结果姓名大写 select upper(ename), sal, job ...

  2. SQLSERVER2012里的扩展事件初尝试(上)

    SQLSERVER2012里的扩展事件初尝试(上) SQLSERVER2012里的扩展事件初尝试(下) 周未看了这两篇文章: 扩展事件在Denali CTP3里的新UI(一) 扩展事件在Denali ...

  3. LocationCoder 地图经纬度解析

    LocationCoder 地图经纬度解析 其实,在地图里面将地图解析成有意义的地址,或者把地址转换成有意义的经纬度都是很容易的事情,只是我将其封装了支持KVO,通知中心,block取结果,代理取结果 ...

  4. Linux系统优化实现高并发

    ulimit -SHn 65535内核优化net.ipv4.ip_forward = 1            #开启路由功能net.ipv4.conf.default.rp_filter = 1   ...

  5. QuickBI助你成为分析师-数据建模(一)

    摘要: 数据集编辑功能界面介绍以及常见问题总结. 在数据集编辑界面可以进行数据建模来更好的展示数据,创建数据集默认将数值类型字段作为度量,日期.字符串等类型作为维度,度量可以根据维度分组展示.下面来介 ...

  6. __iter__的有无

    迭代器和生成器 1.迭代器 我们之前⼀直在⽤可迭代对象进⾏迭代操作. 那么到底什么是可迭代对象.⾸先我们先回顾⼀下⽬前我们所熟知的可迭代对象有哪些: str, list, tuple, dict, s ...

  7. (1)访问控制 (2)final关键字 (3)对象创建的过程 (4)多态

    1.访问控制(笔试题)1.1 常用的访问控制符 public - 公有的 protected - 保护的 啥也不写 - 默认的 private - 私有的 1.2 访问控制符的比较 访问控制符 访问权 ...

  8. [装]JMX监控Hadoop

    http://chenjc-it.iteye.com/blog/1539746 实验成功!

  9. Java 实现对文件系统的监控

    在开发中经常会用到监控文件或是目录的状态,如果你还在手写轮巡扫描文件的话,那你久out了. 1. Commons io为我们提供了一套可靠.高性能的一套文件系统监控API 1.1. 需要的jar包如下 ...

  10. AOP的本质

    AOP的本质是HOOK: HOOK的本质是:新函数包含原函数或新函数替换原函数: 需要解决的问题: 1.新函数的生成: 2.新函数的调用机制: 3.原函数的调用机制: 新函数的生成: 1.将已有的动态 ...