我正在运行wget
来从FTP服务器获取数据,如下所示:
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/
。我要做的是从文件名中获取时间,然后根据日期将其放入自己的文件夹中。例如:
/home/data/2016_07_10/2016_07_10_bob-randomtext.csv.gz
/home/data/2016_07_11/2016_07_11_joe-importantinfo.csv.gz
基于answers here,可以从文件名获取日期。但是,我不确定如何自动将其转换为文件夹...
抱歉,这有点令人困惑。任何帮助或建议,将不胜感激。
最佳答案
将所有文件下载到一个目录/ 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
关于bash - 从文件名获取日期并分类到文件夹中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38340529/