从文件名获取日期并排序到文件夹?

时间:2016-07-12 23:47:34

标签: bash ssh command-line wget

我正在运行SharedPreferences从FTP服务器获取数据,如下所示:

wget

所有文件的格式都与此类似:

wget -r -nH -N --no-parent ftp://username:password@example.com/ -P /home/data/

现在它将所有这些文件放入2016_07_10_bob-randomtext.csv.gz 2016_07_11_joe-importantinfo.csv.gz

我想要做的是从文件名中获取时间并根据日期将其放入自己的文件夹中。例如:

/home/data/

基于answers here,可以从文件名中获取日期。但是,我真的不确定如何将其自动转换为文件夹...

很抱歉,如果这有点令人困惑。任何帮助或建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

将所有文件下载到一个目录/ home / files

destination=/home/data
for filename in /home/files/*; do
    if [[ -f "$filename" ]]; then          # ignore it if it's a directory (not a file)
        name=$(basename "$filename")
        datedir=$destination/${name:0:10}  # first 10 characters of the filename
        mkdir -p "$datedir"                # create the directory if it doesn't exist
        mv "$filename" "$datedir"
    fi
done