首先在X字段中使用sort,然后在Y字段中使用sort而不丢失X字段顺序UNIX

时间:2013-11-20 13:43:47

标签: sorting unix syntax

我正在进行排序,我有6个字段,我想在字段2中按数字排序,然后 我想在不丢失由字段2排序建立的条件的情况下对字段6进行排序。

我试过了

$sort -k6,6 -k2,2
$sort -k2,2 -k6,6
$sort -k6,2 

我只是不懂语法,我不知道它是否可能。我不明白 - 帮助很好

样品

0000369254 0000172915 13 36167143 36246872 79729
0000369271 0000172915 13 35516456 36246873 730417
0000369411 0000133119 13 34392186 34411633 19447
0000381122 0000183597 22 20008595 20053449 44854
0000382291 0000133119 13 34392206 34409592 17386
0000382706 0000183597 22 20008612 20053385 44773
0000383295 0000172915 13 35516456 36246872 730416
0000384827 0000183597 22 20008662 20052887 44225
0000385662 0000183597 22 20004537 20052881 48344
0000387931 0000183597 22 20008592 20049179 40587

谢谢你们

1 个答案:

答案 0 :(得分:1)

您可以使用此命令按列2(主字段)排序第一个排序行,然后按列6(辅助字段)排序。这将使第2列的排序保持完整。

$sort -k2,2 -k6,6 inputfile

此命令的输出将是ad。

0000382291 0000133119 13 34392206 34409592 17386
0000369411 0000133119 13 34392186 34411633 19447
0000383295 0000172915 13 35516456 36246872 730416
0000369271 0000172915 13 35516456 36246873 730417
0000369254 0000172915 13 36167143 36246872 79729
0000387931 0000183597 22 20008592 20049179 40587
0000384827 0000183597 22 20008662 20052887 44225
0000382706 0000183597 22 20008612 20053385 44773
0000381122 0000183597 22 20008595 20053449 44854
0000385662 0000183597 22 20004537 20052881 48344

希望你需要相同的输出。