web-dev-qa-db-ja.com

Ubuntuのパターンで一度に複数のファイルの名前を変更する

私は約300のファイルを持っています

some_name_123456789.Zip
another-name2_987654321.Zip
something(1)_123454321.Zip
[2]something_987656789.Zip

それらすべての名前をに変更する必要があります

ds_123456789.Zip
ds_987654321.Zip
ds_123454321.Zip
ds_987656789.Zip

これどうやってするの?

3
Xseba360

これは、renameコマンドラインユーティリティを使用して実行できます。やりたいことを行うには、単純な正規表現が必要です。

rename "s/.+_/ds/g"files

.+は、(このコンテキストでは)最後のアンダースコア(_)文字までのすべてを表します(したがって、最初の例で説明したように、これは複数のアンダースコアで機能します)。これには、アンダースコアの前に少なくとも1文字が必要です。 _20131012.Zipのようなファイル名がある場合は、代わりに.*を使用してください。したがって、この3文字の文字列(.+_または.*_)は、ファイル名の最後の下線を含むまでのすべてに一致しますs/old/new/は s古い文字列を新しい文字列(ds)に置き換えます。 gは g葉状であり、この場合は必要ないかもしれません。

9
noggerl

または、クロスプラットフォームを使用する 名前名

$ renamer --regex --find '.+_' --replace 'ds' *
1
Lloyd