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 n
die is gekoppeld aan de -k5
zorgt ervoor dat de algemene optie -r
voor dat veld wordt genegeerd. Je moet zowel n
als r
op 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 -t
om het scheidingsteken voor tab
op 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\