我在其他机器上广泛使用过uniq -c
,sort
并且它总是工作得很好。
现在,在我的新 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