【发布时间】:2014-10-15 09:39:00
【问题描述】:
我有两个文件:
file1 的格式为:
field1;field2;field3;field4
(file1 最初未排序)
file2 的格式为:
field1
(文件2已排序)
我运行以下 2 个命令:
sort -t\; -k1 file1 -o file1 # to sort file 1
join -t\; -1 1 -2 1 -o 1.1 1.2 1.3 1.4 file1 file2
我收到以下消息:
join: file1:27497: is not sorted: line_which_was_identified_as_out_of_order
为什么会这样?
(我还尝试对 file1 进行排序,考虑到整行,不仅是该行的第一个字段,但没有成功)
sort -t\; -c file1 不输出任何内容。在第 27497 行附近,情况确实很奇怪,这意味着 sort 没有正确完成它的工作:
XYZ113017;...
line 27497--> XYZ11301;...
XYZ11301;...
【问题讨论】:
-
join非常挑剔。sort -t\; -c file1说什么?排序文件的第 27497 行周围是什么? (请update您的问题提供这些详细信息。) -
请查看我更新的问题
标签: linux bash sorting join text-processing