请教:没有用找出重复和追加的好方法?

2016-07-30 08:00:13 +08:00
 338899
打个比方: a.txt 是一份手机号码; 1 个月后收到 b.txt 手机号码,但是 b.txt 号可能和 a 有重复。
需求:把 b.txt 剔除 a 的重复,只保留 a.txt 没有的号码。

朋友们有没有什么简易的方法呢?

谢谢了。。。
3195 次点击
所在节点    程序员
36 条回复
cmxz
2016-07-30 10:50:18 +08:00
@338899 win
下装个 git( https://git-scm.com ) 然后就可以在 git bash 里执行
skydiver
2016-07-30 11:17:02 +08:00
用不着那么麻烦, sort uniq 基本可以解决大部分问题了。

取交集 cat a.txt b.txt|sort|uniq -d
取差集 cat a.txt a.txt.b.txt|sort|uniq


@cmxz 并不需要两步,一步就出来了~
zclzhangcl
2016-07-30 11:17:18 +08:00
方法有很多。如果量不大,不是几百万的那种。有 excel 的 vba ,还有楼上有一位兄弟的 beyond compare 。
不过这个问题为毛我的第一反应是写个程序呢。。。。。
cmxz
2016-07-30 11:21:16 +08:00
@skydiver 取差集的话也会有 a.txt 中存在, b.txt 中不存在的内容…
skydiver
2016-07-30 11:22:42 +08:00
@cmxz 你仔细看我的命令,只会出现 b 里有 a 里没有的内容
cmxz
2016-07-30 11:24:32 +08:00
@skydiver 居然还可以这样…
cmxz
2016-07-30 11:25:35 +08:00
@skydiver 不过后面应该是 uniq -u 吧
gamexg
2016-07-30 11:35:27 +08:00
@cszhiyue 长见识了,第一次知道 set 之间可以相减。
skydiver
2016-07-30 11:36:10 +08:00
@cmxz 哈哈,经典技巧, cat 两次

对的,后面应该是 uniq -u ,写错了
skydiver
2016-07-30 11:36:43 +08:00
@skydiver 更正:取 b-a 差集: cat a.txt a.txt.b.txt|sort|uniq -u
xpol
2016-07-30 11:36:51 +08:00
Ruby Array 你值得拥有。
RockyLee
2016-07-30 13:07:12 +08:00
Python set
rrfeng
2016-07-30 13:26:22 +08:00
明明是 grep 就能完成的事情……

grep -v -f b.txt a.txt
rrfeng
2016-07-30 13:26:56 +08:00
@rrfeng
a b 可能写反了。
Arnie97
2016-07-30 17:28:23 +08:00
@338899 @cmxz 用不着搬出 Git Bash 这种大家伙, Gow 即可
Gran1987
2016-07-30 19:19:54 +08:00
第一反应 Git

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/295936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX