Unix按降序排序

65

我想按记录的第5个字段降序排列制表符分隔的文件。

我尝试过

sort -r -k5n filename

但是它没有起作用。

3个回答

57
< p > 在< code > -k5 附加了 n 选项时,全局的 -r 选项将被忽略。您必须在相同级别(全局或本地)同时指定 n r 。请注意保留HTML标签。

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

或者

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

20

如果您只想在第5个字段上进行排序,则使用-k5,5

另外,使用-t命令行开关指定分隔符为tab。尝试这个:

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

如果上述方法无效(使用tab键),则可以尝试以下方法:

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

sort命令的man手册中提到:

-t, --field-separator=SEP 使用SEP而非空格作为空格分隔符

最后,这个Unix Sort with Tab Delimiter 的SO问题可能会有帮助。


2
按照升序列出文件大小。
find ./ -size +1000M -exec ls -tlrh {} \; |awk -F" " '{print $5,$9}'  | sort -n\

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接