如何在bash中使用特定字符串对文件进行排序?

时间:2018-12-07 14:47:43

标签: linux bash shell

所以我有一个 events.csv 文件,该文件包含:

  • 日期作为键和格式: DDMMYYHHMM
  • 活动名称
  • 其他(可选信息)

我想根据当前日期对它们进行排序。

Cat the events

下一步对我来说是

cur_date=$(date +%d%m%y | sed s/0/\ /)
cat "events.csv" | sort -rk $cur_date

摆脱前导0。

输出被错误地排序。 我应该先排序年份,然后排序月份,然后排序日期吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

当您说按当前日期排序时,我假设您的意思是要提取今天的所有条目并将它们按时间顺序排序。如果是这样,那么以下应该适用于您

grep $(date +%d%m%Y) _file_ | sort

它将从文件中提取具有当前日期的所有条目。由于所有这些条目都具有相同的日期,因此排序将自动按照时间部分进行排序。

希望这会有所帮助。