Bash 查找丢失的ID
我下面有两个文件,每行包含一个ID。但是,其中一个文件包含的ID少于两个Bash 查找丢失的ID,bash,Bash,我下面有两个文件,每行包含一个ID。但是,其中一个文件包含的ID少于两个 $> grep ">" output.racon-1.fasta | wc -l 6492 $ grep ">" output.racon-2.fasta | wc -l 6490 哪两个ID缺失怎么可能 文件1 $ grep ">" output.racon-1.fasta | head >utg000001l >utg000002l >utg000003l >utg00
$> grep ">" output.racon-1.fasta | wc -l
6492
$ grep ">" output.racon-2.fasta | wc -l
6490
哪两个ID缺失怎么可能
文件1
$ grep ">" output.racon-1.fasta | head
>utg000001l
>utg000002l
>utg000003l
>utg000004l
>utg000005l
>utg000006l
>utg000007l
>utg000008l
>utg000009l
>utg000010l
$ grep ">" output.racon-1.fasta | tail
>utg006483l
>utg006484l
>utg006485l
>utg006486l
>utg006487l
>utg006488l
>utg006489l
>utg006490l
>utg006491l
>utg006492l
文件2
$ grep ">" output.racon-2.fasta | head
>utg000001l
>utg000002l
>utg000003l
>utg000004l
>utg000005l
>utg000006l
>utg000007l
>utg000008l
>utg000009l
>utg000010l
$ grep ">" output.racon-2.fasta | tail
>utg006483l
>utg006484l
>utg006485l
>utg006486l
>utg006487l
>utg006488l
>utg006489l
>utg006490l
>utg006491l
>utg006492l
提前谢谢,一个简单的
diff
和sort
可以完成以下工作:
diff <(grep ">" output.racon-1.fasta | sort) <(grep ">" output.racon-2.fasta | sort)
<代码> diff.p>作为使用<代码>差异> /代码>的替代方案,可以考虑使用<代码>连接< /代码>。如果对文件进行了排序,这可以告诉您:(不带选项)它们有共同的行;使用
-v1
第一个文件中不在第二个文件中的行;使用-v2
仅出现在第二个文件中的行
因此,在您的实例中,如果您认为第二个文件是第一个文件的子集,您可以使用
join -v1 <(grep ">" output.racon-1.fasta) <(grep ">" output.racon-2.fasta)
join-v1是否已排序?如果是这样,您可以使用diff
您是否尝试过diff-u output.racon-1.fasta output.racon-2.fasta
?grep-Fxvf file1 file2
comm-3 file1 file2
如果排序的话应该是好的。如果ID像您的示例中那样单调增加,您只想找到序列中缺少的一个,将grep
配管至nl
并手动检查两个数字列的分歧处是否足够。或者您可以编写一个简单的Awk脚本来查看跳过数字的位置。
join -v1 <(grep ">" output.racon-1.fasta | sort) <(grep ">" output.racon-2.fasta | sort)