'something_12345.doc'(任意の5桁の数字、必ずしも12345ではない)という名前のファイルがたくさんあります。それらすべての名前を「something.doc」に変更する必要があります。これはUnixファイルシステムであり、たった1つのコマンドでこれを行う方法があると思います... Unix正規表現の第一人者は助けになりますか?
ありがとう!
'something_12345.doc'(任意の5桁の数字、必ずしも12345ではない)という名前のファイルがたくさんあります。それらすべての名前を「something.doc」に変更する必要があります。これはUnixファイルシステムであり、たった1つのコマンドでこれを行う方法があると思います... Unix正規表現の第一人者は助けになりますか?
ありがとう!
@OP、シェルはすでにパターンを展開しています。mv ステートメントで、5 桁のパターンを再度指定する必要はありません。
for file in *_[0-9][0-9][0-9][0-9][0-9].doc
do
echo mv "$file" "${file%_*}.doc"
done
この質問は、SO で何度も尋ねられました。
私の個人的な好みはmmvです。ただし、「一括名前変更/コピー/リンク ツール」を参照してください。
rename 's/_[0-9][0-9][0-9][0-9][0-9]//' *.doc
使用する
ls *.doc | sed 's:\([^0-9_]\)[0-9_][0-9_]*\.doc:$(mv & \1.doc)' | /bin/bash
はい、rename
perlスタイルの正規表現を取ります。を実行しますman rename
。