unix sorteer aflopende volgorde

Ik wil een tab-beperkt bestand in aflopende volgorde sorteren volgens het 5e veld van de records.

Ik heb het geprobeerd

sort -r -k5n filename

Maar het werkte niet.


Antwoord 1, autoriteit 100%

De aanwezigheid van de optie ndie is gekoppeld aan de -k5zorgt ervoor dat de algemene optie -rvoor dat veld wordt genegeerd. Je moet zowel nals rop hetzelfde niveau specificeren (wereldwijd of lokaal).

sort -t $'\t' -k5,5rn

of

sort -rn -t $'\t' -k5,5

Antwoord 2, autoriteit 32%

Als je alleen alleenop het 5e veld wilt sorteren, gebruik dan -k5,5.

Gebruik ook de opdrachtregeloptie -tom het scheidingsteken voor tabop te geven. Probeer dit:

sort  -k5,5 -r -n -t \t filename

of als het bovenstaande niet werkt (met het tab), dit:

sort  -k5,5 -r -n -t $'\t' filename

De man-pagina voor sorterenstelt:

-t, –field-separator=SEP
gebruik SEP in plaats van een niet-lege naar blanco overgang

Ten slotte kan deze SO-vraag Unix Sort with Tab Delimiternuttig zijn.


Antwoord 3, autoriteit 4%

Om bestanden weer te geven op basis van grootte in oplopende volgorde.

find ./ -size +1000M -exec ls -tlrh {} \; |awk -F" " '{print $5,$9}'  | sort -n\

Other episodes