【问题标题】:Using sort -M to sort by month使用 sort -M 按月份排序
【发布时间】:2014-08-09 10:07:28
【问题描述】:

我有一个包含以下文本的文件months.txt:

JAN, MAR, DEC, FEB, JUN, APR

在 bash 中,我编写了以下代码行:

cat months.txt | sort -M

我假设这会输出按月份排序的文本文件。但是输出没有排序。我是不是用错了排序?

【问题讨论】:

  • sort 按行排序。你所有的月份都在同一条线上。

标签: bash sorting unix cat utilities


【解决方案1】:

sort 的文本进行排序,而您只给了它一个。

如果您的文件如下所示:

JAN
MAR
DEC
FEB
JUN
APR

...你会得到你期望的结果。

顺便说一句,你的命令是useless use of cat:命令

sort -M months.txt

做同样的事情。

【讨论】:

    【解决方案2】:

    您需要将逗号分隔的列表变成单独的行,对其进行排序,然后将其转换回来:

    tr ',' '\n' < months.txt | sort -M | awk 'NR > 1 { printf(",") } {printf("%s", $0)} END { print "" }'
    

    【讨论】:

      【解决方案3】:

      另一个镜头:

      tr -s ', ' '\n\n' < months.txt | sort -M | paste -sd,
      
      JAN,FEB,MAR,APR,JUN,DEC
      

      输出中没有空格。

      【讨论】:

        猜你喜欢
        • 2021-09-09
        • 2014-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多