目标
我们经常需要快速的知道两个列。一般这两个列是样品或者id。我们想看看他们的逻辑情况(交集并集差集)
方案
我们可以使用pandas去处理。
但是linux命令行明显要好得多。
先模拟两个数据组。
for i in {a..g};do echo $i >> 1.txt;done
for i in {d..i};do echo $i >> 2.txt;done
cat 1.txt |wc -l
cat 2.txt |wc -l
交集
cat 1.txt 2.txt |sort|uniq -d
-d代表重复。
两个列按行合并到一起,重复的行就是交集
并集
cat 1.txt 2.txt |sort|uniq
所有的uniq元素自然就是并集
差集
cat 1.txt 2.txt |sort|uniq -u
-u表示独特
这就是差集。
sort a.txt b.txt b.txt | uniq -u
将两个文件排序,最后输出a.txt b.txt b.txt文件中只出现过一次的内容,因为有两个b.txt所以只会输出只在a.txt出现过一次的内容(b.txt的内容至少出现两次),即是a.txt-b.txt差集;对于b.txt-a.txt同理。