私は約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
これどうやってするの?
これは、rename
コマンドラインユーティリティを使用して実行できます。やりたいことを行うには、単純な正規表現が必要です。
rename "s/.+_/ds/g"
files
.+
は、(このコンテキストでは)最後のアンダースコア(_
)文字までのすべてを表します(したがって、最初の例で説明したように、これは複数のアンダースコアで機能します)。これには、アンダースコアの前に少なくとも1文字が必要です。 _20131012.Zip
のようなファイル名がある場合は、代わりに.*
を使用してください。したがって、この3文字の文字列(.+_
または.*_
)は、ファイル名の最後の下線を含むまでのすべてに一致します 。 s/old/new/
は s古い文字列を新しい文字列(ds
)に置き換えます。 g
は g葉状であり、この場合は必要ないかもしれません。
または、クロスプラットフォームを使用する 名前名 :
$ renamer --regex --find '.+_' --replace 'ds' *