使用不同的日期格式重命名Unix目录中的所有文件

时间:2013-10-25 04:46:23

标签: rename

请您告诉我如何更改Unix目录中的所有文件名,如下所示:

来自:* _mmddyyyy.xls

收件人:* _yyyymmdd.xls

谢谢,

2 个答案:

答案 0 :(得分:0)

ls *.xls | while read f; do
  base=${f%_*}
  mdy=${f#*_}
  mdy=${mdy%.xls}
  y=${mdy#????}
  md=${mdy%????}
  mv $f $base_$y$md.xls
done

或:

ls *.xls > old
sed 's/_\(....\)\(....\)/_\2\1/' old > new
paste old new | while read b n; do mv $b $n; done

答案 1 :(得分:0)

for i in *_mmddyyyy.xls ; do mv "$i" `echo "$i" | sed -e 's/^\(.*_\)\([0-9][0-9][0-9][0-9]\)\([0-9][0-9]\)\([0-9][0-9]\)\(\.xls\)$/\1\4\2\3\5/'` ; done

使用“echo”代替“mv”,直到你确定循环产生正确的结果 - 我们中的任何一个都可能有拼写错误。