【问题标题】:File is not sort after sort文件未排序后排序
【发布时间】:2018-06-28 10:44:17
【问题描述】:

我的文件排序有问题。我的文件是这样的

geom-10-11.com 1 geom-1-10.com 9 geom-1-11.com 10 geom-1-2.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-2-10.com 8 geom-2-11.com 9 geom-2-3.com 1 geom-2-4.com 2 geom-2-5.com 3 geom-2-6.com 4 geom-2-7.com 5 geom-2-8.com 6 geom-2-9.com 7 geom-3-10.com 7 geom-3-11.com 8 geom-3-4.com 1 geom-3-5.com 2 geom-3-6.com 3 geom-3-7.com 4 geom-3-8.com 5 geom-3-9.com 6 geom-4-10.com 6 geom-4-11.com 7 geom-4-5.com 1 geom-4-6.com 2 geom-4-7.com 3 geom-4-8.com 4 geom-4-9.com 5 geom-5-10.com 5 geom-5-11.com 6 geom-5-6.com 1 geom-5-7.com 2 geom-5-8.com 3 geom-5-9.com 4 geom-6-10.com 4 geom-6-11.com 5 geom-6-7.com 1 geom-6-8.com 2 geom-6-9.com 3 geom-7-10.com 3 geom-7-11.com 4 geom-7-8.com 1 geom-7-9.com 2 geom-8-10.com 2 geom-8-11.com 3 geom-8-9.com 1 geom-9-10.com 1 geom-9-11.com 2

所以我使用了sort -k1.6 -k2 -n,我得到了

geom-1-2.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-1-10.com 9 geom-1-11.com 10 geom-2-3.com 1 geom-2-4.com 2 geom-2-5.com 3 geom-2-6.com 4 geom-2-7.com 5 geom-2-8.com 6 geom-2-9.com 7 geom-2-10.com 8 geom-2-11.com 9 geom-3-4.com 1 geom-3-5.com 2 geom-3-6.com 3 geom-3-7.com 4 geom-3-8.com 5 geom-3-9.com 6 geom-3-10.com 7 geom-3-11.com 8 geom-4-5.com 1 geom-4-6.com 2 geom-4-7.com 3 geom-4-8.com 4 geom-4-9.com 5 geom-4-10.com 6 geom-4-11.com 7 geom-5-6.com 1 geom-5-7.com 2 geom-5-8.com 3 geom-5-9.com 4 geom-5-10.com 5 geom-5-11.com 6 geom-6-7.com 1 geom-6-8.com 2 geom-6-9.com 3 geom-6-10.com 4 geom-6-11.com 5 geom-7-8.com 1 geom-7-9.com 2 geom-7-10.com 3 geom-7-11.com 4 geom-8-9.com 1 geom-8-10.com 2 geom-8-11.com 3 geom-9-10.com 1 geom-9-11.com 2 geom-10-11.com 1

但是当我尝试使用 uniq -f1 sort -k1.6 -k2 -n -u 我得到相同的长排序输出。所以我用了 sort -k1.6 -k2 -n -c 并收到此文件无序的消息

(sort: glist2:2: disorder: geom-1-2.com 1).

我尝试只使用sort -k2 -n -u 但得到了

geom-10-11.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-1-10.com 9 geom-1-11.com 10

这不是我需要的,我需要拥有

geom-1-2.com 1 geom-1-3.com 2 geom-1-4.com 3 geom-1-5.com 4 geom-1-6.com 5 geom-1-7.com 6 geom-1-8.com 7 geom-1-9.com 8 geom-1-10.com 9 geom-1-11.com 10

所以我需要开始 geom-1-X 而不是 geom-10-X。使用 juste uniq 会很好,因为我有更多更大的文件,有更多的几何形状(大约数千行),但结构相同。谢谢你的回答。

【问题讨论】:

  • 您的输入文件与给定的结果示例不匹配。例如。条目geom-1-11-14.com 10 3 不存在于任何示例中。是故意的吗?如果是,请解释。如果没有,请更新您的示例。
  • @oliv 感谢您的评论。我编辑了我的帖子,并在这里放了我的问题不太复杂的例子。

标签: linux bash sorting uniq


【解决方案1】:

你可以用这个:

grep -E '^geom-1-' file | sort -k1.8n

grep 正在过滤您想要的行。 sort 对从第 8 个字符开始的第一个字段进行数字排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多