晓夏

北漂的女孩

Good Luck To You!

shell求出两个文件的交集,uniq与sort -u 两种去重的区别

浏览量:399

在网上查的结果是:

#!/bin/sh
#获得 当前的地址
cur_dir=$(cd `dirname $0`; pwd)
#Shell 取两个文件的交集和并集
cat $cur_dir/aa.log $cur_dir/bb.log |sort -n |uniq -d >> $cur_dir/ceshi.log

跑出来的结果是不准确的,最后没办法找个了笨方法来出来这个问题。

我先对aa和bb文件进行去重:

 cat aa.log | sort -u > unip_aa.log
 cat bb.log | sort -u >unip_bb.log
 grep -F -f unip_aa.log unip_bb.log > ceshi.log

sort -u 和 uniq都能起到删除重复信息的功能,那么他们的区别究竟在哪呢?
$ cat test              
jason
jason
jason
fffff
jason

下面分别执行三个命令

1:sort -u test

sort -u test
fffff
jason

2: uniq test

$uniq test 
jason
fffff
jason 

 3: sort test|uniq

$sort test |uniq 
fffff
jason

从上面三个命令我们很容易看出他们之间的区别。uniq所谓的重复是连续出现的相同记录


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。