Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12658
  • 博文数量: 5
  • 博客积分: 294
  • 博客等级: 二等列兵
  • 技术积分: 60
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-21 02:10
文章分类

全部博文(5)

文章存档

2011年(1)

2010年(4)

最近访客

分类:

2010-08-07 12:35:33

处理文本时常会碰到重复行、排序、统计等问题。这时,可以考虑sort和uniq这两个命令。sort对标准输入的文本进行行排序,在读取行时会对他们进行比较并去除重复行。下面学习下常用的选项。

     准备一个测试文本:

# cat list.txt
1       baidu
2       google
3       sina
2       google
4       sohu
5       qq
      实现1.去除重复行

# cat list.txt |sort|uniq

1       baidu
2       google
3       sina
4       sohu
5       qq

     实现2. 去除交集,只取出不同的部分

#cat list.txt |sort|uniq -u
1       baidu
3       sina
4       sohu
5       qq

    瞧,重复行google不见了。

    实现3.取出相同行部分

#cat list.txt |sort|uniq -d
  2       google

     接下来练练手,网上流传一道百度的面试题,如下:

处理以下文件内容,将域名取出并进行计数排序,如处理






得到如下结果:

域名的出现的次数 域名

3   
2    post.baidu.com
1    mp3.baidu.com

可以使用/perl/php/c任意一种

cat url.txt|awk -F/ '{print $3}'|sort -r|uniq -c|awk '{print $1"\t"$2}'

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