排序不使用自然顺序

排序不使用自然顺序

我在其他机器上广泛使用过uniq -csort并且它总是工作得很好。

现在,在我的新 Ubuntu (13.04) 机器上,我最终得到了一个奇怪的顺序:

% cat queries.log | grep INSERT | sort | uniq -c | sort
      1 INSERT INTO A (id, organization_id) VALUES (?, ?)
      2 INSERT INTO B (id, resource_id) VALUES (?, ?)
      2 INSERT INTO C (id) VALUES (?)
      2 INSERT INTO D (email, password) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
      3 INSERT INTO E (user_id, type) VALUES (?, ?)
  40275 INSERT INTO F (id, resource_id) VALUES (?, ?)
  40283 INSERT INTO G (action_id, role_id, user_id) VALUES (?, ?, ?, ?, ?)
      6 INSERT INTO H (id, resource_id) VALUES (?, ?)

为什么是6之后40283

我怎样才能得到预期的“自然”顺序?

答案1

您需要提供-n启用数字排序的选项,

   -n, --numeric-sort
          compare according to string numerical value

相关内容