Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 查找丢失的ID_Bash - Fatal编程技术网

Bash 查找丢失的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

我下面有两个文件,每行包含一个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
>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)