从文件名中提取日期使用shell脚本

时间:2015-02-06 23:07:01

标签: linux extract

我有像这样的文件名

File Name_9.30.11.csv
File Name_11.30.13.csv

我想提取日期并加入201109201311

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以在文件名上使用正则表达式匹配并提取日期。根据示例文件名的格式,将示例代码转换为您指定的格式:

#!/bin/bash

fn='File Name_9.30.11.csv';
regex='([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{1,2})';
if [[ $fn =~ $regex ]]; then
    mn="${BASH_REMATCH[1]}";
    day="${BASH_REMATCH[2]}";
    yr="${BASH_REMATCH[3]}";
    dt=`date -d"$mn/$day/$yr" +%Y%m`
    echo "date is: $dt";
fi