【问题标题】:Using awk and sorting [duplicate]使用awk和排序[重复]
【发布时间】:2019-05-23 19:51:02
【问题描述】:

我有一个包含名称和数字的文件,如下所示:

students.txt:

Student A F 40 50 60
Student B F 50 60 70
Student C M 60 70 80
Student D M 100 90 90
Student E F 80 90 100
Student F M 20 30 40
Student G M 30 40 50

我想使用 awk 对这些名称进行排序,并按一行中的最后一个数字进行排序。

当我尝试时

sort -k6 students.txt | awk '{print}'

给我的输出是

... 100
... 40
... 50
... 60
... 70
... 80
... 90

因此,除了第一个之外,它大多是排序的。 100 出现在输出的开头而不是结尾有什么原因吗?

【问题讨论】:

标签: linux sorting awk


【解决方案1】:

您需要通过-n 标志使用数字排序。来自sort(1)man page

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

结果:

$ sort -n -k6 学生.txt 学生 F M 20 30 40 学生 G M 30 40 50 学生 A F 40 50 60 学生 B F 50 60 70 学生 CM 60 70 80 学生 D M 100 90 90 学生 E F 80 90 100

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2019-06-12
    • 2011-07-15
    • 1970-01-01
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多