博客 2015-03-02


Sort

awk -F'|' '{print $2":"$3}'  aaaa |sort -t ':'  -k2rn     (-t分隔符,-k 哪列 -n按数值大小排列)
sort -n -r -u file   ( num reserve unique )
sort -n -t ‘ ‘ -k 2 -k 3rn facebook.txt  (先k2 再k3)
sort -t ‘ ‘ -k 1.2 facebook.txt (从第一列第二个字母‘向后。。。’排序)
sort -t ‘ ‘ -k 1.2,1.2 -k 3,3nr facebook.txt(只对第二个字母排序,。。)
  du -hsx  /path/* | sort -rh | head -10  (文件系统最大的前10个文件)


Uniq

grep "http:/blog.mreald.com"  /var/log/varnish/access_log  |cut -d " " -f 1 |sort -n |uniq -dc   (count)
假设 a.txt 包括 a, c, b 三行。假设 b.txt 包括 d, e, c, b 四行。
 
交集,把两个文件放到一起排序,只输出次数多于一次的项:
suse:~/test # sort b.txt a.txt a
b
b
c
c
d
e 
$ sort a.txt b.txt | uniq -d  (-d显示重复行)
b
c

并集,把两个文件放到一起排序,重复的项只算一次:
$ sort a.txt b.txt | uniq  
a
b
c
d
e 

差集(A-B),把B的元素重复2份和A的元素放到一起排序,只输出出现一次的项:
$ sort a.txt b.txt b.txt | uniq -u (显示不重复的行)
a 

对称差,把两个文件放到一起排序,只输出出现一次的项:
$ sort a.txt b.txt | uniq -u
a
d
e