Answers:
试试看:
sort -s -n -k 1,1
在-s
禁用“最后手段”的排序,这对排序,这不是一个特定的键的一部分一切。
在-k 1
实际上并不意味着“本场和接下来的”在数字排序的情况下,你可以看到,如果你尝试排序的第二列。您只是看到去往其余部分的关系破裂。但是,通常,您需要指定仅对字段1 -k 1,1
进行排序。
join
是输入要在要加入的字段上排序。因此,可以肯定的是,此输出在第一个字段上进行了排序,您可以加入该字段。
-k 1,1
(即“ 1 ”的一部分)不起作用任何更好的我。有效的是-s -k 1
,-n
如果您需要它。
提供的答案均不适合我。
双方sort -s -k 2 file1
并sort -n -k1,1
做此文件中的其他排序:
# cat file1
3 3 5
3 2 3
1 4 7
0 1 2
3 2 1
我只需要做这个确切的事情,并最终使用了shell循环。此解决方案可能不适用于非常大的文件,因为需要为已排序的列中的每个唯一值读取整个文件。
在这里,文件仅在第2列上排序。
# awk '{print $2}' file1 | sort | uniq | while read index
do
awk -v var=$index '$2 == var { print $0}' file1
done
0 1 2
3 2 3
3 2 1
3 3 5
1 4 7
sort -s -k2,2 file1