awk练习笔记
题目数据如下:
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练习笔记的更多相关文章
- linux awk学习笔记
awk学习笔记 awk语法格式 awk '{pattern + action}' {filenames} awk作用 awk的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后 ...
- 【转】awk学习笔记
Awk学习笔记 整理:Jims of 肥肥世家 <jims.yang@gmail.com> Copyright © 2004 本文遵从GPL协议,欢迎转载.修改.散布. 第一次发布时间:2 ...
- awk 学习笔记
awk的语法有两种形式 awk [options] 'script' var=value file(s) awk [options] -f scriptfile var=value file(s) 选 ...
- sed、grep、awk -- 三剑客笔记记录
sed常用操作笔记 1.删除文件最后一行: sed -i '$d' filename 2.递归替换内容:sed -i 's/内容A/内容B/g' filename sed -i "s/S ...
- sed and awk学习笔记
sed and awk 背景 awk起源追溯至sed和grep,进而追溯至共同的行编辑器ed.实用工具grep来源于ed命令:g/re/p .实用工具awk和sed有一个共同的选项-f用于指定脚本的名 ...
- awk学习笔记二:调用shell、文件执行(转)
awk 'BEGIN {print "Hello"}' 不操作文件直接处理数据流 要调用shell则可以用管道命令 如,打印日期awk 'BEGIN {"date&quo ...
- awk学习笔记一:基础(转)
awk内置变量 ARGC 命令行参数个数ARGV 命令行参数排列ENVIRON 支持队列中系统环境变量的使用FILENAME awk浏览的文件名FNR 浏览文件的记录数FS 设置输入域分隔符,等价于命 ...
- 【转】 awk 学习笔记
本文参考的是 ubuntu 下 gawk version 3.1.6 以及 <sed&awk> 一 . awk 简介 awk 是一种解释型(tawk除外)文本处理语言 二 . aw ...
- AWK读书笔记
1.awk 'parttern {action}' filename 从文件中逐行读取并匹配parttern,若匹配成功执行action否则读取下一行. parttern和action都可选,若省略p ...
随机推荐
- LeetCode 544----Output Contest Matches
During the NBA playoffs, we always arrange the rather strong team to play with the rather weak team, ...
- git push 提示 Everything up-to-date
第一次在 Google Code 上弄项目,注册完毕后,尝试增加一个新文件用以测试 Git 是否好好工作.结果在 Push 时却显示 Every up-to-date,检查文件时却发现实际上一个都没更 ...
- 实现serializable接口的作用
最重要的两个原因是: 1.将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本: 2.按值将对象从一个应用程序域发送至另一个应用程序域. 实现serializable接口的作用是就是可以 ...
- PyQt4(简单界面)
import sys; from PyQt4 import QtCore, QtGui; app=QtGui.QApplication(sys.argv); widget=QtGui.QWidget( ...
- sqlserver 统计信息自动更新 ----trace flag 2371
对于已经应用的表(非临时表)统计信息更新条件为500+20%,具体更新条件 If the statistics is defined on a regular table, it is out of ...
- 使用 Azure CLI 创建和管理 Linux VM
Azure 虚拟机提供完全可配置的灵活计算环境. 本教程介绍 Azure 虚拟机的基本部署项目,例如选择 VM 大小.选择 VM 映像和部署 VM. 你将学习如何执行以下操作: 创建并连接到 VM 选 ...
- asp.net使用一般处理程序实现文件下载
首先有一个html页面,页面有一个链接,点击链接弹出文件下载/保存(类似迅雷下载链接) <!DOCTYPE html> <html> <head> <meta ...
- [翻译] BezierString
BezierString https://github.com/lvnyk/BezierString Rendering NSAttributedStrings along arbitrary con ...
- 一个好玩的计算题目(c++ 位运算)
2015/11/10 在一个qq群里面,看到一个好玩的题目.“int foo(int x){return x&-x} foo(2^31-3)这个怎么算 ?” 1.自己也就开始算了: (1) ...
- 统计过程控制与评价 Cpk、SPC、PPM
Cpk(Process capability index)--工序能力指数 SPC(Statisical Process Control)--工艺过程统计受控状态分析 PPM(Parts Per Mi ...