Date 拆分文件名以定义变量
我有一个脚本,我创建,以帮助转换视频,然后上传到我们的网站。我们的视频文件名都有一个标准格式,以帮助正确设置它们(日、月、年;即2013年10月9日.m4v)。它们被逐月逐日归档到目录中(即2013/10/09OCT2013/09OCT2013.m4v)。现在,我的脚本通过请求用户输入年份、月份以及文件夹的实际文件名来打开。我要做的是将已创建的文件放入脚本中,然后让脚本将其拆分并放入相应的文件中(即,将文件12JUN2012.m4v放入脚本中,脚本会自动将其放入2012/jun/12JUN2012/)。在航站楼有没有可能做到这一点?如果我的问题有任何部分不清楚,请告诉我。假设您使用的是Date 拆分文件名以定义变量,date,split,terminal,filenames,Date,Split,Terminal,Filenames,我有一个脚本,我创建,以帮助转换视频,然后上传到我们的网站。我们的视频文件名都有一个标准格式,以帮助正确设置它们(日、月、年;即2013年10月9日.m4v)。它们被逐月逐日归档到目录中(即2013/10/09OCT2013/09OCT2013.m4v)。现在,我的脚本通过请求用户输入年份、月份以及文件夹的实际文件名来打开。我要做的是将已创建的文件放入脚本中,然后让脚本将其拆分并放入相应的文件中(即,将文件12JUN2012.m4v放入脚本中,脚本会自动将其放入2012/jun/12JUN201
bash
:
for file in "$@"
do
dd=${file:0:2}
mm=${file:2:3}
yy=${file:5:4}
mv "$file" "$yy/$mm/$file"
done
如果文件需要进一步移动,或者提供了更多的路径名,您可以调整脚本,但是使用子字符串表示法将文件名的最后一个部分拆分的基本思想很好。这非常有效!谢谢我必须找到一种从文件本身获取文件路径的方法,但一旦我发现了这一点,我就可以开始了。
basename
是删除路径的经典技术(也可以选择使用后缀),而dirname
是从路径获取目录的经典技术。现在,${file###*/}
的工作原理与basename
(除去后缀除外)大致相同,${file%/*}
的工作原理与dirname
相同,除非没有目录名(dirname
产生
,但${file%/*}
产生文件名)。