从文件名中提取日期

从文件名中提取日期

我正在尝试从文件名中提取日期并将其存储到变量中,还需要更改日期格式。如果我的文件名一致,我可以按位置提取日期吗?

File Name: GHDC_src_04142019_05_09_32.data.gz

查看该日期的结果

04142019 as var=2019-04-14

答案1

由于您可以“按位置进行”,请尝试:

$ name=GHDC_src_04142019_05_09_32.data.gz
$ echo "${name:13:4}-${name:9:2}-${name:11:2}"
2019-04-14

或者,保存在变量中:

name=GHDC_src_04142019_05_09_32.data.gz
var="${name:13:4}-${name:9:2}-${name:11:2}"

由于使用纯 bash,因此无需启动子进程,也无需启动外部命令。这使得这种方法非常高效。

该表格${name:offset:length}称为子串扩展。它选择从$name开始offset并持续 的字符length。在我们的例子中,${name:13:4}捕获年份、${name:9:2}月份和${name:11:2}日期。

相关内容