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

如何在Shell环境中从含时间戳的日志文件名提取日期值

从日志文件名提取日期戳:Extract.120420180130.log → 12042018

没问题!针对你这个需求,这里有几个在Shell环境下简单实用的方法,选一个顺手的用就行:

方法1:Shell参数扩展(最轻便,不用额外工具)

如果你的文件名格式是固定的(Extract.+8位日期+4位时间+.log),直接用Shell自带的字符串截取最省事:

filename="Extract.120420180130.log"
date_part="${filename:8:8}"
echo "$date_part"

解释:${filename:8:8} 表示从字符串的第8个位置(Shell索引从0开始)截取8个字符,刚好命中我们要的日期部分。

方法2:用cut命令分步分割

通过两次分割来提取目标内容:

echo "Extract.120420180130.log" | cut -d '.' -f 2 | cut -c 1-8

解释:先用.做分隔符取出中间的120420180130部分,再截取它的前8个字符,就是我们要的日期。

方法3:sed正则精准匹配

如果需要更灵活的匹配(比如文件名格式有小变动也能适配),可以用正则捕获:

echo "Extract.120420180130.log" | sed 's/^Extract\.\([0-9]\{8\}\)[0-9]\{4\}\.log$/\1/'

解释:正则里的\([0-9]\{8\}\)专门捕获了8位数字的日期部分,替换时只输出这个捕获组,就能得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:49:14