【发布时间】:2021-10-06 02:45:37
【问题描述】:
假设我有一个目录,其中包含每天保存的产品库存:
$ ls *.csv
2014_01_01.csv
2014_01_02.csv
...
是否存在只抓取最新文件的 glob 模式?还是我需要将它与其他命令链接起来?基本上我只是想根据文件名排序对LIMIT 1 做些什么。
【问题讨论】:
假设我有一个目录,其中包含每天保存的产品库存:
$ ls *.csv
2014_01_01.csv
2014_01_02.csv
...
是否存在只抓取最新文件的 glob 模式?还是我需要将它与其他命令链接起来?基本上我只是想根据文件名排序对LIMIT 1 做些什么。
【问题讨论】:
假设您的 shell 是 bash、ksh93 或 zsh,并且您的文件与您的问题中的示例具有相同的命名约定:
files=( *.csv )
printf "The newest file is %s\n" "${files[-1]}"
由于文件名中的日期采用自然排序的格式,因此将所有日期存储在一个数组中并获取最后一个元素会为您提供最新的(相反,第一个元素是最旧的)。
【讨论】: