linux下从MP4文件中提取日期批量添加到文件名前缀

  1. 从MP4文件中提取creationTime用作文件名前缀:
    for fn in *.mp4; do t1=`mp4file --dump $fn | /bin/grep creationTime | head -1 | awk '{print $4}'`; let t2=t1-2082844800; t_str=`date -d @$t2 +"%Y%m%d-%H%M%S"`; fn2=${t_str}_$fn; echo $fn -> $fn2; sudo mv $fn $fn2; done

     

  2. 提取MP4文件属性的修改时间作为前缀:
    for fn in 19040101-080000_*.mp4; do t=`ls -l  --time-style +"%Y%m%d-%H%M%S" $fn | awk '{print $6}'`; fn2=${t}_`echo $fn | awk -F_ '{print $2}'`; echo $fn -> $fn2; sudo mv $fn $fn2; done

     

第2步是为了处理第1步遗漏的一部分文件,有些MP4文件里面creationTime字段写的是0,是无效的,只能使用文件本身的时间属性

你可能感兴趣的:(linux,shell)