拡張子が異なる複数のファイルを含むディレクトリがありますが、拡張子の前のファイル名はすべて同じです。たとえば、file1.txt、file1.jpg、file1.pdf、file1.odt...
「file1」部分のみを変更し、拡張子は変更しないため、結果はnewfilename.txt、newfilename.jpg、newfilename.pdf、newfilename.odtと同じです。
それぞれを退屈に実行することなく、mv file1.txt newfilename.txt
これを行う方法がわかりません。拡張したい部分がすべて分かっている場合は、中かっこ拡張を使用してファイル名を変更する多くのチュートリアルをオンラインで見つけることができますが、拡張子が何であれ、file1をnewfilenameに置き換えることはできません。これは可能ですか、それとも間違った木を吠えていますか?
ありがとう
編集:申し訳ありません。この記事を投稿した直後、Googleの検索結果でこの質問に対する回答を提供する別のページが見つかりました。for f in file1.*; do mv "$f" "${f/file1/newfilename}"; done
完璧に動作しました。
答え1
質問を投稿した後、次のことがわかりました。
for f in file1.*; do mv "$f" "${f/file1/newfilename}"; done
奇跡的に動作します。
答え2
Bashを使用してこれを行うことはできますが、それに適した他のツールがあります。
ほとんどのディストリビューションでは:
rename file1 newfilename file1.*
DebianとUbunturename
ではrename.ul
。