Je veux trier un fichier limité par onglets dans l'ordre décroissant en fonction du 5ème champ des enregistrements.
J'ai essayé
sort -r -k5n filename
Mais ça n'a pas marché.
La présence de l'option n
attachée à l'option -k5
provoque le global -r
option à ignorer pour ce champ. Vous devez spécifier à la fois n
et r
au même niveau (globalement ou localement).
sort -t $'\t' -k5,5rn
ou
sort -rn -t $'\t' -k5,5
Si vous voulez seulement trier seulement sur le cinquième champ, utilisez -k5,5
.
Aussi, utilisez le -t
_ commutateur de ligne de commande pour spécifier le délimiteur à tab
. Essaye ça:
sort -k5,5 -r -n -t \t filename
ou si ce qui précède ne fonctionne pas (avec le tab
), ceci:
sort -k5,5 -r -n -t $'\t' filename
Le page de manuel pour le tri indique:
-t, --field-separator = SEP utilise SEP au lieu de transition non vide à vide)
Enfin, cette SO question Tri Unix avec séparateur d'onglets pourrait être utile.
Pour lister les fichiers en fonction de leur taille en ordre croissant.
find ./ -size +1000M -exec ls -tlrh {} \; |awk -F" " '{print $5,$9}' | sort -n\