0

次のように、Unix ディレクトリ内のすべてのファイル名を変更する方法を教えてください。

From : *_mmddyyyy.xls

To : *_yyyymmdd.xls

ありがとう、

4

2 に答える 2

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
于 2013-10-25T04:57:58.010 に答える
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

ループが正しい結果を生成していることを確認するまでは、"mv" の代わりに "echo" を使用してください。

于 2013-10-25T05:07:01.330 に答える