ファイル名の部分文字列を別のものに一括置換


5

次のような名前のファイルがたくさんあります。

1_1.pngEND1_1.png

どのように置き換えます.pngEND_

私はこの問題をグーグルで調べて、文字通り5つ以上の解決策を試しましたが、どれもMacでは動作しませんでした。


投稿を編集して、試してみたいと思った1つのソリューションと使用したリンクを詳しく説明すると、うまくいかないものを修正できる可能性があります。(または、ファイル名の一括変更に適したツールを指定します)。私がしたバックアップからの復元方法を簡単に応じて、bashのやPythonを使用していますが、したいそれらのツールか、単に使用してmv裏目に出る可能性がありますが、すでに必要な構文との良好いないのであれば...
bmike

2
私はあなたが由緒を見てみることをお奨めperl rename- search.cpan.org/~pederst/rename-1.9/bin/rename.PL
fd0の

回答:


8

これを行う方法はたくさんあります。例えば

for i in *pngEND*.png; do [[ -e ${i/.pngEND/_} ]] || echo mv "$i" "${i/.pngEND/_}"; done

echo出力が適切に見える場合は削除します。


15

スクリプトで使用できるソリューションが必要でない限り、Finderで直接これを実行できます。

  • 名前を変更するファイルを選択します
  • それらのいずれかを右クリックし、「N個のアイテムの名前を変更...」を選択します(Nは選択したファイルの数です)
  • ドロップダウンで[ テキスト置換 ]オプションを選択します
  • 置換するテキスト( ".pngEND")と置換するテキスト( "_")を入力します
  • 名前の変更をクリックします

1
クール。これについて知ら
なかった

2

ターミナルまたはスクリプトを使用してfamilierない場合は、と呼ばれるのmacアプリを使用することができますNameChangerを(自由に使用します)。ファイル名/ファイル拡張子のほとんどすべてをバッチで変更できます。


1
ただし、この特定の種類のバッチ名前変更の場合、サードパーティのアプリは必要ありません。Finderでできます。
calum_b

1

これを行う必要がある場合は、HomeBrewを介してインストールできるrenameコマンドを使用します。

例:

セットアップ:

mac:test user$ touch 1_1.pngEND1_1.png

mac:test user$ ls
1_1.pngEND1_1.png

名前変更コマンドを実行します。

mac:test user$ rename 's/\.pngEND/_/' *.pngEND*

結果:

mac:test user$ ls
1_1_1_1.png

1

また、perl renameツールを使用して成功しました。また、変更を実行する前にテストできるように、ドライランオプションもあります。


perlコマンドを使用するために何かをインストールする必要がありますか?
サンジハン

それだけの歴史。これは、Linux / GNUベースの環境で使用できるパッケージマネージャーに含まれている単なるツールです。それはそれのようなものであるかもしれませんperl-rename
Pysis
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.