You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从指定文件中筛选出早于当前日期30天的文件夹列表?

提取早于当前日期30天的文件夹路径

针对你的需求,这里提供两种高效的Bash解决方案,无需复杂的sort/awk组合:

方法一:字符串直接对比(推荐,更高效)

由于文件中日期是YYYY-MM-DD格式,这种格式的字符串字典序和实际日期顺序完全一致,因此可以直接计算出30天前的日期字符串,再用awk做字符串比较:

# 计算30天前的日期(格式同文件中的日期)
THRESHOLD_DATE=$(date -d "-30 days" +%Y-%m-%d)

# 遍历文件,输出日期早于阈值的文件夹路径
awk -v threshold="$THRESHOLD_DATE" '$1 < threshold {print $2}' /tmp/file

方法二:时间戳对比(兼容更多日期格式)

如果后续日期格式可能变化,或者需要更精准的时间对比,可以将日期转换为Unix时间戳(从1970年到该日期的秒数),再做数值比较:

# 计算30天前的时间戳
THRESHOLD=$(date -d "-30 days" +%s)

# 逐行处理文件,转换日期为时间戳后对比,输出符合条件的路径
awk -v threshold="$THRESHOLD" '{
    cmd = "date -d \"" $1 "\" +%s"
    cmd | getline timestamp
    close(cmd)
    if (timestamp < threshold) print $2
}' /tmp/file

验证说明

以当前日期为2023-10-20为例,30天前的日期是2023-09-20,运行上述命令后,文件中所有日期为2023-09-14、2023-09-18、2023-09-19的文件夹路径都会被输出,符合需求。

内容的提问来源于stack exchange,提问作者King David

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:46:17