linux中的join命令和排序错误



我有两个文件

文件1

1 1:712591 NA 712591 T G NA
1 1:733687 NA 733687 G A NA
1 1:739347  NA 739347 G C NA
1 1:739565  NA 739565 C G NA

文件2

1 712591 rs2345678
1  739347 rs12456789
1  739565 rs8523694
1 733687 rs74158260

我对file 1中的第4列和file 2中的第2列这两个文件进行了排序

我尝试使用join命令将两个文件与匹配的列进行匹配:

join -1 4 -2 2 file1 file2 | head
join: file1.txt:4: is not sorted: 1 1:739347  NA 739347 G C NA
join: file2.txt:2: is not sorted: 1  739347 rs12456789

您确定使用了正确的文件吗
我得到了预期的输出:

% cat file1
1 1:712591 NA 712591 T G NA
1 1:733687 NA 733687 G A NA
1 1:739347  NA 739347 G C NA
1 1:739565  NA 739565 C G NA
% cat file2
1 712591 rs2345678
1  739347 rs12456789
1  739565 rs8523694
1 733687 rs74158260

文件2没有排序,我得到错误

% join -1 4 -2 2 file1 file2 | head   
join: file2:4: is not sorted: 1 733687 rs74158260
712591 1 1:712591 NA T G NA 1 rs2345678
739347 1 1:739347 NA G C NA 1 rs12456789
739565 1 1:739565 NA C G NA 1 rs8523694

我对两个文件都进行了排序:

% sort -k4 file1 > file1.s
% sort -k2 file2 > file2.s

现在它们被排序:

% cat file1.s
1 1:712591 NA 712591 T G NA
1 1:733687 NA 733687 G A NA
1 1:739347  NA 739347 G C NA
1 1:739565  NA 739565 C G NA
% cat file2.s 
1 712591 rs2345678
1 733687 rs74158260
1  739347 rs12456789
1  739565 rs8523694

加入工作:

% join -1 4 -2 2 file1.s file2.s | head
712591 1 1:712591 NA T G NA 1 rs2345678
733687 1 1:733687 NA G A NA 1 rs74158260
739347 1 1:739347 NA G C NA 1 rs12456789
739565 1 1:739565 NA C G NA 1 rs8523694

最新更新