求助大神:编写一个shell 脚本 ,移动某个文件夹下的文件到各自的日期组成的目录下
比如/data/images/目录下有大量BOSS220_2202018022635604_BACK_T.jpgBOSS220_2202018022535604_BACK...
比如/data/images/目录下 有大量 BOSS220_2202018022635604_BACK_T.jpg
BOSS220_2202018022535604_BACK_T.jpg类似这种文件,需要截取时间分类,移动到以这个截取时间命名的目录下,
比如BOSS220_2202018022635604_BACK_T.jpg 移到以20180226命名的文件夹下
BOSS220_2202018022535604_BACK_T.jpg 移到以20180225命名的文件夹下 展开
BOSS220_2202018022535604_BACK_T.jpg类似这种文件,需要截取时间分类,移动到以这个截取时间命名的目录下,
比如BOSS220_2202018022635604_BACK_T.jpg 移到以20180226命名的文件夹下
BOSS220_2202018022535604_BACK_T.jpg 移到以20180225命名的文件夹下 展开
1个回答
展开全部
1、主要是从文件名截取出日期,如果固定了位数
2、可以先按_分割取第二段
echo $file|awk -F\_ '{print $2}'
3、然后再取第4位后面的8位
4、例如:vi a.sh
#!/bin/sh
for file in `ls *.jpg`;do
echo $file
datedir=$(echo $file|awk -F\_ '{print $2}'|awk '{print substr($1,4,8)}')
mkdir $datedir
/bin/mv $file $datedir
done
2、可以先按_分割取第二段
echo $file|awk -F\_ '{print $2}'
3、然后再取第4位后面的8位
4、例如:vi a.sh
#!/bin/sh
for file in `ls *.jpg`;do
echo $file
datedir=$(echo $file|awk -F\_ '{print $2}'|awk '{print substr($1,4,8)}')
mkdir $datedir
/bin/mv $file $datedir
done
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询