Confused o GNU `sort (1)` z numerické dílčí oblasti

hlasů
3

Přál bych si, aby třídit prostor oddělený table, s číselnou hodnotou, která zjistila na 2. poli. I lze předpokládat, že 2. pole je vždy Mobil ale délka N je znám:

antiq. foo11 girls
colleaguing foo2 Leinsdorf
Cousy foo0 Montgomeryville
bowlegged foo1 pollack
Chevrier foo10 ill-conceived
candlebomb foo3 seventieths
autochthony foo101 re-enable
beneficiate foo100 osteometric

Četl jsem man sort(1)a hrál se všemi druhu možností. Na mém systému jsem našel řádek:

sort -n -k2.5 table

pracovat.

Moje otázka je , proč?

Podle manuálové stránky:

-k, --key=POS1[,POS2]
   start a key at POS1, end it at POS 2 (origin 1) 
...
POS is F[.C][OPTS], where F is the field number and C the characterposition in the
field. OPTS is one or more single-letter ordering options, which override global
ordering options for that key. If no key is given, use the entire line as the key. 

Tak proč sort -n -k2.4tabulky nefungují a sort -n -k2.5dělá?

Položena 30/05/2010 v 10:03
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Odpověď je: přední plocha (y), se počítají jako součást pole , pokud:

sort -b -n -k2.4 table

nebo zvědavě:

LC_ALL=C sort -t" " -n -k2.4 table

že také dává správný výsledek.


... a ještě jedna věc ...

Se mohlo zdát, že je lepší používat:

sort -b -n -k2.4,2 table

a tím omezit druh na konci 2. pole.

Odpovězeno 30/05/2010 v 10:58
zdroj uživatelem

hlasů
1

Já nevím, jestli to pomůže, ale info sort uvádí následující:

sort -t: -k 2,2n -k 5.3,5.4

 Note that if you had written `-k 2' instead of `-k 2,2' `sort'
 would have used all characters beginning in the second field and
 extending to the end of the line as the primary _numeric_ key.
 For the large majority of applications, treating keys spanning
 more than one field as numeric will not do what you expect.

Možná zkusit přidat mezeru mezi -ka 2nebo zkuste nastavit POS2?

Odpovězeno 30/05/2010 v 10:34
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more