Estou tentando classificar um arquivo que contém entradas como esta.
Esta é a saída de head file.txt | sort -n
1 1 360030.650313113 23.6496749206273
1 2 184005.303709890 12.5819130584254
1 3 51304.4897339131 3.54834660232693
2 1 184005.303709890 12.5819130584254
2 2 176030.554401950 13.7621056226822
2 3 71841.9750474998 6.31576927490416
3 1 51304.4897339131 3.54834660232693
3 2 71841.9750474998 6.31576927490416
3 3 72642.2936524586 9.28260169486644
4 1 12511.6549282967 0.867004812539363
E esta é a saída de cat file.txt | sort -n | head
1 100 0.265986106008280 1.948706529813553E-005
1 1000 3.184914160835964E-004 3.067021647295356E-008
1 1001 7.604450718679718E-005 7.326181191420022E-009
1 1002 1.809620185415599E-005 1.743513966528432E-009
1 1003 4.304204593193070E-006 4.147009800188772E-010
1 1004 1.023686141641656E-006 9.863012681974230E-011
1 1005 2.434647501464963E-007 2.345735005737759E-011
1 1006 5.790348098792519E-008 5.578886733501962E-012
1 1007 1.377124338943865E-008 1.326832274761822E-012
1 1008 3.275228617666499E-009 3.155618499463635E-013
Como você pode ver, se eu usar apenas uma pequena parte do arquivo, a saída será classificada exatamente da maneira que eu quero, mas quando eu uso o arquivo inteiro, 100 vem antes de 1. Eu tentei especificar -k1,2
e também -k1n,2n
sem sucesso.
O que posso fazer para ter o arquivo inteiro classificado como 1,1; 1,2; 1,3 ... 1,2000; 2,1; 2,2; ... 2,2000; etc?
Minha versão de ordenação é sort (GNU coreutils) 8.21, se isso for relevante.