Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1470442
  • 博文数量: 165
  • 博客积分: 2068
  • 博客等级: 上尉
  • 技术积分: 2102
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-27 16:07
文章分类

全部博文(165)

文章存档

2018年(1)

2017年(22)

2016年(9)

2015年(22)

2014年(8)

2013年(25)

2012年(53)

2011年(25)

分类: 系统运维

2015-10-22 19:56:08

    sort既可以从特定文件,也可以从stdin中获取输入,并输出到stdout。
一、
$ sort file1.txt  file2.txt    # 对一组文件进行排序

$ sort -n file.txt              # 按照数字顺序进行排序

$ sort -r file.txt               # 按照逆序进行排序

$ sort file1.txt | uniq       # 找出已排序文件中不重复的行

$ sort -C file.txt              # 检查文件是否排序过

$ sort -k file.txt               # 根据键进行排序
# 根据第1列,以逆序形式排序
$ sort -nrk 1 data.txt
4  linux    1000
3  bsd      1000
2  winxp   4000
1  mc       2000

二、sort和uniq结合使用
uniq可以通过消除重复内容,从给定输入中找出唯一的行,也可以用来找出输入中出现的重复行
uniq只能作用于排序过的数据输入,因此要么使用管道,要么把排序过的文件作为输入。
1. 根据给定的输入生成唯一的行
sort file.txt | uniq
2. 只显示唯一的行
sort file.txt | uniq -u 或者 uniq -u sorted.txt
3. 只显示重复的行
sort file.txt | uniq -d
4. 统计各行在文件中出现的次数
sort file.txt | uniq -c
5. uniq -s -w用法
-s 指定跳过前n个字符,-w 指定用于比较的最大字符数
$ cat file.txt
u:01:gnu
d:04:linux
u:01:bash
u:01:hack
sort file.txt | uniq -s 2 -w 2
d:04:linux
u:01:bash

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