我使用grep命令根据列表过滤文件。
grep -w -F -f list.txt file1.tsv > file2.tsv
但它也给了我一些额外的线条。就像我的列表中有2130个值,而file2中有2213个唯一行。这是file1的前几行。
Variant Gene
rs1042714 ADRB2
rs2297480 FDPS
rs12248560 CYP2C19
以下是List.txt的一些行。
rs228729
rs228642
rs228666
rs2640909
我应该使用什么来根据列表文件过滤文件?
答案 0 :(得分:1)
命令正确,要检查命令:
grep -w -F -f list.txt file1.tsv > file2.tsv
使用-v
执行相同的命令以反转匹配:
grep -v -w -F -f list.txt file1.tsv > file2.tsv.invert
检查file2.tsv.invert的内容
使用您的文件测试(所有结果都可以):
grep -w -F -f list.txt file2.tsv.invert | wc -l
> 0 # it's ok
wc -l file2.tsv.invert file2.tsv # total must be equal to file1.tsv
> 2544 file2.tsv.invert
> 2997 file2.tsv
> 5541 total
wc -l file1.tsv
> 5541 file1.tsv
一切似乎都好!