60

我想根据记录的第 5 个字段按降序对选项卡受限文件进行排序。

我试过了

sort -r -k5n filename

但它没有用。

4

3 回答 3

57

n附加到的选项的存在-k5导致该字段的全局-r选项被忽略。您必须在同一级别(全局或本地)n指定两者。r

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

或者

sort -rn -t $'\t' -k5,5
于 2012-08-14T17:58:32.870 回答
18

如果您只想对第 5 个字段进行排序,请使用-k5,5.

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

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

或者如果上述方法不起作用(使用tab),则:

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

sort的手册页指出:

-t, --field-separator=SEP 使用 SEP 而不是非空白到空白的过渡

最后,这个 SO question Unix Sort with Tab Delimiter可能会有所帮助。

于 2012-08-14T17:52:42.910 回答
2

根据大小按升序列出文件。

find ./ -size +1000M -exec ls -tlrh {} \; |awk -F" " '{print $5,$9}'  | sort -n\
于 2013-07-04T12:00:19.067 回答