1

'something_12345.doc'(任意の5桁の数字、必ずしも12345ではない)という名前のファイルがたくさんあります。それらすべての名前を「something.doc」に変更する必要があります。これはUnixファイルシステムであり、たった1つのコマンドでこれを行う方法があると思います... Unix正規表現の第一人者は助けになりますか?

ありがとう!

4

6 に答える 6

3

@OP、シェルはすでにパターンを展開しています。mv ステートメントで、5 桁のパターンを再度指定する必要はありません。

for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
  echo mv "$file" "${file%_*}.doc"
done
于 2010-01-29T00:08:35.943 に答える
2

rename 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc

于 2010-01-28T18:34:11.117 に答える
1

使用する

ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash
于 2013-02-17T08:02:16.953 に答える
0

はい、renameperlスタイルの正規表現を取ります。を実行しますman rename

于 2010-01-28T18:27:50.150 に答える