Chinaunix首页 | 论坛 | 博客
  • 博客访问: 916637
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: Python/Ruby

2013-02-25 18:20:02

有这样一段文本:

aaa bbb abc bbb abc abb aab acc abb bbb abc abb aab acc aab acc abb bcc bbc...

需要按照bbb、abc、abb、acc、aaa顺序排序,如果数据不是这其中之一,则排在最后面,这个顺序没有更多要求。


代码如下:

#!/usr/bin/awk -f
func shuchu(n,item){
	for (x=1;x<=n;x++)
		print item" "
}
BEGIN{
	key[1] = "bbb"
	key[2] = "abc"
	key[3] = "abb"
	key[4] = "acc"
	key[5] = "aaa"
	RS=" "
	ORS=""
}
{
	gsub("\n","",$0)
	num[$0]++
}
END{
	for(i=1;i<=6;i++){
		shuchu(num[key[i]],key[i])
		delete num[key[i]]
	}
	for(i in num)
		shuchu(num[i],i)
	printf "\n" }


执行结果:



阅读(2096) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~