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