排序中-n和-g之间有什么区别?

时间:2017-08-18 14:56:31

标签: bash sorting

根据手册页,-n选项比较“字符串数值”,-g比较“一般数值”。这两者有什么区别?

1 个答案:

答案 0 :(得分:2)

根据源代码,以下是三种数字排序:

  • numeric:处理带有可选小数点但没有指数表示法的数字字符串。
  • general_numeric:以指数表示法处理数字,也处理十六进制,无穷大,...(参见man strtold)
  • human_numeric:由具有SI或IEC前缀的人类可读单元排序。

以下是例子:

$ sort /tmp/tosort-gen   
0
0x0a
1
100
1e1
1e2
1k
1M
2e3
INF

$ sort -h /tmp/tosort-gen
0
0x0a
INF
1
1e1
1e2
2e3
100
1k
1M

$ sort -g /tmp/tosort-gen
0
1
1k
1M
0x0a
1e1
100
1e2
2e3
INF