awk排序作业
输入:给定一个hotelinfo文件,文件格式如下:
shanghai_city_7208 上海全季酒店淮海路店
shanghai_city_14744 锦江之星上海金山城市沙滩店
jinan_2794 章丘市大众旅馆
carmel_ca_5 Carmel River Inn
格式说明:
1. 一共两列,之间使用tab分隔
2. 第一列是酒店代号,第二列是酒店名称
3. 以shanghai_city_7208为例,前面的shanghai_city代表城市
要求如下:
1. 输出一个文件,和hotelinfo格式一样,但是按照酒店代号进行降序排序
2. 输出一个文件,两列,第一列是城市代号,第二列是这个城市下的酒店数,但是按照酒店数进行降序排序
文件如下:
hotelinfo.txt
1.先表示我看错题目了,我以为是按照第一列的最后的数字排序,瞬间复杂度增加,于是我写了一段蛋疼的awk程序。
首先对文本进行排序处理,awk程序为hotelsort.awk
BEGIN{FS="_";ORS="";content=""}
#将原来的文件按照“_”切分,确保酒店的数字代码在空格的第二列
{for(i=;i<(NF-);i++) content=content""$i"_";content=content""$(NF-)" "$NF"\n"}
#用sort命令对酒店代码排序
END{printf("%s", content) | "sort -rn -k 2 > hotelsorted.txt"}
执行
awk -f hotelsort.awk hotelinfo.txt
此时hotelsorted.txt如下
falling_waters_wv Holiday Inn Express MARTINSBURG-NORTH
fairlee_vt Silver Maple Lodge & Cottages
etroubles_ita Hotel Beau Sejour
escanaba_mi Comfort Suites Escanaba
elk_river_mn Country Inn & Suites By Carlson Elk River
eckelsheim_ger Hotel Klosterhof Eckelsheim
dundalk_il 邓多克皇冠假日酒店
delwara_ind Devi Garh
deidesheim_ger Steigenberger Hotel Deidesheim
colton_ca Holiday Inn Express Colton
chita Arkadia
burbank_ca Burbank-Media Center
最后格式化一下这个文件
awk '{print $1"_"$2" "$3}' hotelsorted.txt > hotelsortedformat.txt
得到最后结果
fancy_gap_va_1 Days
falling_waters_wv_1 Holiday
fairlee_vt_1 Silver
etroubles_ita_1 Hotel
escanaba_mi_1 Comfort
elk_river_mn_1 Country
eckelsheim_ger_1 Hotel
dundalk_il_1 邓多克皇冠假日酒店
delwara_ind_1 Devi
deidesheim_ger_1 Steigenberger
colton_ca_1 Holiday
chita_1 Arkadia
burbank_ca_1 Burbank-Media
收工
2. 跟第一题差不多,写个awk hotelsum.awk
BEGIN{FS="_"}
#跟第一题类似,用数组统计个数
{citycode="";for(i=;i<(NF-);i++) citycode=citycode""$i"_";if(NF>)citycode=citycode""$(NF-);sum[citycode]++}
END{for(city in sum) printf("%s\t%4d\n", city, sum[city])}
然后调用一下并排序
awk -f hotelsum.awk hotelinfo.txt | sort -t " " -k -nr
结果:
torquay_vic
tel_aviv
rovinj_cro
torremolinos_esp
the_hague
torquay_uk
paris_city
telford_uk
london_england
los_angeles_usa
fairview_pa
tarragona_esp
beijing_city
tampere_fi
shanghai_city
san_antonio_usa
suzhou_jiangsu
manchester_usa
tossa_de_mar_spa
timmendorfer_strand
terracina_ita
riccione_ita
chongqing_city
yichun_jiangxi
west_memphis_ar
sydney_australia
rovaniemi_fi
dover_de
anderson_sc
ubud_id
taunton_ma
taizhou_zhejiang
robinson_il
okehampton_uk
melbourne_australia
las_vegas
koh_phuket_tha
harrisburg_pa
hamilton_on
gardner_ks
faulkton_sd
beppu_jp
west_columbia_tx
volos_gre
thunder_bay_on
the_entrance_nsw
teignmouth_uk
pittsfield_il
newcastle_united_kingdom
motta_camastra
montvale_nj
montauk_ny
lindos_gre
liberal_ks
lakeside_ca
fort_washington_pa
fillmore_ut
escanaba_mi
birmingham_usa
big_island
zanzibar_tza
yulin_shanxi_02
yulin_guangxi
ypsilanti_mi
yelverton_uk
wigston_uk
wangerooge_ger
vysoke_tatry_sk
trento_ita
the_rocks_nsw
tamworth_uk
stadtoldendorf_ger
somerset_uk
singapore_city
shipley_uk
shenandoah_tx
schmallenberg_ger
santa_elena_gt
san_diego
salado_tx
saint_petersburg
rock_port_mo
riverside_il
richmond_vt
ravenna_italy
prestwick_uk
piste_mex
peoria_az
pensacola_fl
painesville_oh
osnabruck_ger
new_york_city
new_delhi
nelson_bay
montclair_nj
montclair_ca
mexico_city
menlo_park_ca
mattoon_il
mason_wv
madonna_di_campiglio
lone_tree_co
london_England
livingston_nj
lincoln_uk
lakeside_az
krumbach_ger
kota_kinabalu
koh_samui
kernersville_nc
kansas_city
jackson_ms
huizhou_guangdong
huelva_esp
hongkong_city
himeji_jp
hillsborough_nc
hille_ger
hershey_pa
havelock_north_nz
hakodate_jp
grand_rapids
glendale_ca
glen_allen_va
galena_park_tx
fuzhou_fujian
ft_lauderdale
french_lick_in
frazer_pa
fondi_ita
fancy_gap_va
falling_waters_wv
fairport_ny
fairlee_vt
etroubles_ita
elk_river_mn
eckelsheim_ger
dundalk_il
denpasar_bali
delwara_ind
deidesheim_ger
davie_fl
covington_kt
corpus_christi_tx
colton_ca
cefalu_ita
cavriglia_ita
carmel_ca
campinas_bra
burbank_ca
budapest_city
brooklyn_center_mn
bratislava_city
aberdeen_united_kingdom
awk排序作业的更多相关文章
- MapReduce --全排序
		MapReduce全排序的方法1: 每个map任务对自己的输入数据进行排序,但是无法做到全局排序,需要将数据传递到reduce,然后通过reduce进行一次总的排序,但是这样做的要求是只能有一个red ... 
- 03-Foundation中NSMutableArray遍历、复制和排序
		目录: 一.NSString补充 二.NSMutableArray可变数组 三.遍历 四.NSArray支持的新语法 五.数组复制 六.数组的排序 SDK.API.Foundation.Cocoa是什 ... 
- Hadoop 数据排序(一)
		1.概述 1TB排序通常用于衡量分布式数据处理框架的数据处理能力.Terasort是Hadoop中的的一个排序作业.那么Terasort在Hadoop中是怎样实现的呢?本文主要从算法设计角度分析Ter ... 
- 实验楼实验——LINUX基础入门
		第一节 Linux简介 一.Linux的历史: 1965 年,Bell 实验室.MIT.GE(通用电气公司)准备开发 Multics 系统,为了同时支持 300 个终端访问主机,但是 1969 年失败 ... 
- hadoop MapReduce 笔记
		1. MapReduce程序开发步骤 编写map 和 reduce 程序–> 单元测试 -> 编写驱动程序进行验证-> 本地数据集调试 -> 部署到集群运行 用 ... 
- 使用DBMS_STATS来收集统计信息【转】
		overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fract ... 
- Hadoop 中疑问解析
		Hadoop 中疑问解析 FAQ问题剖析 一.HDFS 文件备份与数据安全性分析1 HDFS 原理分析1.1 Hdfs master/slave模型 hdfs采用的是master/slave模型,一个 ... 
- [hadoop转载]tearsort
		1TB排序通常用于衡量分布式数据处理框架的数据处理能力.Terasort是Hadoop中的的一个排序作业,在2008年,Hadoop在1TB排序基准评估中赢得第一名,耗时209秒.那么Tera ... 
- ISPF常用命令
		[ISPF功能键] PF1: HELP帮助键 PF2: SPLIT键,改变分屏位置 PF3: END键,结束并退回上级菜单 PF4: RETURN键,结束并退回主菜单 PF5: REFIND键,重复最 ... 
随机推荐
- bzoj 1452 二维树状数组
			#include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk mak ... 
- GeneXus手机开发基础配置
			最近使用GeneXus15 U3版本做了几个手机端的项目,感觉还不错,开发速度很快,而且想要的功能也都实现了.其中有一些常用的配置和小技巧和大家分享一下. 基础环境要求 如果想开发Android程序, ... 
- HDU 6071 Lazy Running (同余最短路 dij)
			Lazy Running Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)To ... 
- linux下如何配置TCP参数设置详解
			设置tcp参数一定要小心谨慎,轻易不要更改线上环境,我贴一下我们线上环境中,sysctl.conf的内容,见文章底部 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tc ... 
- SpringBoot学习(二)
			MyBatis是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架,避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.spring Boot 是能支持快速创建 Spring 应用的 ... 
- 山东省第四届省赛 E-Mountain Subsequences
			Description Coco is a beautiful ACMer girl living in a very beautiful mountain. There are many trees ... 
- bzoj1004 purfer 序列
			之前没不知道这个数列. 一个purfer序列与一棵树一一对应. 长度为n的purfer的集合: A = { s | s is a sequence and a∈[1,len(s)+2] 一个直接的结论 ... 
- 某DP题目2
			题意: 有一个栈,有n个数1~n按顺序插进栈中,但弹出顺序不定.另有m个限制,表示为a b,即数a必须在数b弹出之前弹出.问有多少种弹出的方案数.n <= 300,m <= 90000 分 ... 
- SCOJ 4423: Necklace polya
			4423: Necklace 题目连接: http://acm.scu.edu.cn/soj/problem.action?id=4423 Description baihacker bought a ... 
- Codeforces Round #300 C. Tourist's Notes 水题
			C. Tourist's Notes Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/538/pr ... 
