1

所以我在这里看到了很多各种各样的问题,我希望有人能解决我自己的问题。我有一个看起来像这样的文件:

data    dd  0.0 96  157 KL  71  X   6947
data    fb  0.0 11  3R2 HD  13  1   1850
data    bx  0.0 14  352 FG  12  X   4810
data    bh  0.0 13  3GF FH  1T  1   6840
data    fb  0.0 11  3R2 HD  13  1   1325
etc.

我想按第 8 行和第 9 行对文件进行排序,以便输出如下:

data    bx  0.0 14  352 FG  12  X   4810
data    dd  0.0 96  157 KL  71  X   6947
data    fb  0.0 11  3R2 HD  13  1   1325
data    fb  0.0 11  3R2 HD  13  1   1850
data    bh  0.0 13  3GF FH  1T  1   6840
etc.

我试过了

排序 -n -k7 -k8 文件 > 新文件

但这只能对它进行排序:

data    dd  0.0 96  157 KL  71  X   6947
data    bx  0.0 14  352 FG  12  X   4810
data    fb  0.0 11  3R2 HD  13  1   1850
data    bh  0.0 13  3GF FH  1T  1   6840
data    fb  0.0 11  3R2 HD  13  1   1325
etc. 

所以我尝试了:

> sort -n -k8 -k9 file > newfile

但这只会让情况变得更糟

data    dd  0.0 96  157 ZL  71  P   69412217
data    fb  0.0 11  3R2 HX  13  1   185135150
data    bx  0.0 14  352 FG  12  X   4810
data    bh  0.0 13  3GF FH  1T  1   6840
data    fb  0.0 11  3R2 HY  13  L   132321355
etc.

我也尝试过:

排序 -n -k8,9 文件 > 新文件

但这似乎并不可靠,因为它会连续正确执行几次,但随后会随机加入一些人:

data    dd  0.0 96  157 KL  71  X   6947
data    bx  0.0 14  352 FG  12  26  443810
data    fb  0.0 11  3R2 HD  13  1   1850
data    bh  0.0 13  3GF FH  1T  1   6840
data    bx  0.0 14  352 FG  12  2   465310
data    fb  0.0 11  3R2 HD  13  1   1325
etc. 

我在这里做错了什么?

4

1 回答 1

2

这个怎么样:

[cnicutar@ariel ~]$ sort -n -k8,8 -k9,9  tos

data    bx  0.0 14  352 FG  12  X   4810
data    dd  0.0 96  157 KL  71  X   6947
data    fb  0.0 11  3R2 HD  13  1   1325
data    fb  0.0 11  3R2 HD  13  1   1850
data    bh  0.0 13  3GF FH  1T  1   6840

这将第八个字段指定为主键,将第 9 个字段指定为辅助键。

于 2013-04-08T17:06:21.990 回答