linux中的join命令表示文件没有排序,但它们是

时间:2016-01-30 12:09:27

标签: linux bash sorting join

我有2个文件,我想加入他们。它们都是有序的。 我按照这些命令对它们进行了排序:

$sort -n -k1,1 f1 > t1
$echo $?
0
$mv t1  f1
$sort -n -k1,1 f2 > t1
$echo $?
0
$mv t1 f2

现在我运行join命令

$join -1 1 -2 1 f1 f2 > fjoin
$echo $?
1

它说这些文件没有排序

$cat f1
0 0
5 0
9 0
10 0 <----- problem is here
$cat f2
0 1
3 1
11 2 <----- problem is here

1 个答案:

答案 0 :(得分:3)

我建议删除sort的选项-n

来自man join

  

重要说明:必须在连接字段上对FILE1和FILE2进行排序。例如,如果sort -k 1b,1没有选项,则使用join;如果join -t ''没有选项,则使用sort。注意,比较遵守LC_COLLATE指定的规则。如果输入未排序且某些行无法连接,则会给出警告消息。