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) |