首页 > 解决方案 > 有没有办法使用 bash 脚本根据发布日期值对 *.md 文件进行排序?

问题描述

我正在写博客,并且正在使用降价文件格式保存这些博客文章。该文件包含发布日期和更新日期。lowdown我可以在工具的帮助下调用我需要的信息,例如发布日期。到目前为止,一切都很顺利。但是当我想按索引页面的发布日期进行排序时,我找不到这样做的方法。

注意:我使用的日期格式;YYYY-MM-DD

作为我试图达到的结果的一个例子;

(假设我们正在循环浏览包含博客文章的目录)

for post in *.md; do
    title=$(lowdown -X title $post)
    date=$(lowdown -X date $post)
    <h1>$date</h1>
    <h1>$title</h1>
done

输出给出自然顺序(我认为)。

2021-10-02 2th Post
2021-10-04 Last Post
...

我的期望是用 $date 值对它们进行排序。

2021-10-04  Last Post
2021-10-03  3th Post
2020-10-02  2th Post
2019-10-01  1th Post

标签: linuxbash

解决方案


您可以将输出通过管道传递sort -r到顶部的获取最新帖子,如下所示:

for post in *.md; do
    title=$(lowdown -X title $post)
    date=$(lowdown -X date $post)
    echo "$date $title"
done | sort -r

推荐阅读