为什么shell'join'命令失去了一些正确的结果

时间:2012-07-16 11:36:33

标签: shell join

当我使用'join'合并两个已排序的文件时,结果是意外的。 这是一个例子:

//文件a.bat

12
123
456
13421
123456

// file b.bat

12
123
5432
123456

执行命令:

$ join -1 1 -2 1 -o '1.1 2.1' a.dat b.dat  
12 12
123 123

其中123456被忽略!事实上,我确实尝试过其他文件,其中一些文件也没有得到完整的结果。为什么会这样?

1 个答案:

答案 0 :(得分:3)

您的输入需要按字面排序,以便join正常工作。您的输入是按数字排序的,这是错误的。所有以1开头的字符串应该在所有以2开头的字符串之前等等。