用uniq实现文件的并集和交集
2008-06-27 16:59
232 查看
经常有这样的需求:两个文本文件要求取重复的行或只取不重复的,简单的情况下用sort和uniq来处理是非常方便的:
利用现存两个文件,生成一个新的文件
1. 取出两个文件的并集(重复的行只保留一份)
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)
3. 删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u
例如:
[zzx@test55 ~]$ cat a
1
2
3
[zzx@test55 ~]$ cat b
23
2
3
4
5
6
排序:
[zzx@test55 ~]$ cat a b|sort
1
2
2
23
3
3
4
5
6
去重(并集):
[zzx@test55 ~]$ cat a b|sort|uniq
1
2
23
3
4
5
6
交集:
[zzx@test55 ~]$ cat a b|sort|uniq -d
2
3
去除交集后的并集
[zzx@test55 ~]$ cat a b|sort|uniq -u
1
23
4
5
6
差集可以用以下两种方法实现:
grep -F -f listb lista -v
sort B B A | uniq -u
利用现存两个文件,生成一个新的文件
1. 取出两个文件的并集(重复的行只保留一份)
2. 取出两个文件的交集(只留下同时存在于两个文件中的文件)
3. 删除交集,留下其他的行
1. cat file1 file2 | sort | uniq
2. cat file1 file2 | sort | uniq -d
3. cat file1 file2 | sort | uniq -u
例如:
[zzx@test55 ~]$ cat a
1
2
3
[zzx@test55 ~]$ cat b
23
2
3
4
5
6
排序:
[zzx@test55 ~]$ cat a b|sort
1
2
2
23
3
3
4
5
6
去重(并集):
[zzx@test55 ~]$ cat a b|sort|uniq
1
2
23
3
4
5
6
交集:
[zzx@test55 ~]$ cat a b|sort|uniq -d
2
3
去除交集后的并集
[zzx@test55 ~]$ cat a b|sort|uniq -u
1
23
4
5
6
差集可以用以下两种方法实现:
grep -F -f listb lista -v
sort B B A | uniq -u
相关文章推荐
- linux ---用uniq实现文件的并集和交集
- shell中使用sort和uniq实现两文件的并集,交集和差集
- linux ---用uniq实现文件的并集和交集
- 如何求两个文件的交集、并集和差集?------sort和uniq闪亮登场
- 利用linux命令sort和uniq求两个文件的交集并集和补集
- uniq 求两个文件的交集,并集,差集
- 利用sort和uniq求两个文件的并集,交集和差集
- Shell 取两个文件的交集和并集
- Linux shell计算两个文件的交集,并集和差集
- 求两个数组的交集、并集和差集算法分析与实现
- sort uniq 取交集并集
- 实现La和Lb的交集、并集、差集,并把结果存入Lc中(数据结构)
- linux 处理两个文件的并集,交集,计数
- ES6使用Set数据结构实现数组的交集、并集、差集功能示例
- 递增有序的顺序表表示集合,求解两个集合的交集 并集 差集(c语言实现)
- 求两个数组的交集、并集和差集算法分析与实现(转自http://blog.sina.com.cn/s/blog_616e189f0100mrdn.html)
- Erlang生成式实现的列表去重、求交集及并集
- 交集、并集、差集实现代码
- linux shell下求文件的交集、并集、差集
- linux 处理两个文件的并集,交集,计数