2017-02-10 7 views
1

ファイル名がABC_XYZ_123.jpgのファイルが多数あります。ファイル名に含まれる数字以外の文字をすべて削除します。

形式を12311.jpgにするため、一括で名前を変更したいと思います。

Macでこれを行うにはどうすればよいですか?

ありがとうございます!

+0

は、1つのディレクトリにそれらはすべてであるか、あるいは階層がありますか? 'ABC_123.jpg'と' DEF_123.jpg'もありますか? –

答えて

1

ABC_XYZ_123.jpg -> 123.jpg 
+1

ありがとうございます!これはうまくいった! – ABZ

+0

私はmv "$ 0" "$ {0 ## * _}"が何を理解しようとしています。これを私に説明してもらえますか?他の名前形式の名前を変更するためにこれを再利用できるようにしたいと思います。ありがとう! – ABZ

+0

これは[shell parameter expansion](https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html)と呼ばれ、基本的には変数 '$ 0'が名前になります'* _ * _ * 'パターンにマッチするファイルの名前。中括弧 '$ {}'で使用すると、オンザフライの文字列操作のように機能します。 '## *'は最長パターンと一致することを意味し、 '_'が出てきて削除されます。私はそれがかなり複雑に聞こえることを理解しています。一度それを数回使用すると意味があります。リンクされたページには非常に役立つ例がありますので、試してみてください! –

0

私はもののこの種に特化便のコマンドラインを覚えていることはできませんので(renameのように)私は、タスクんbashスクリプト作成:VI以内

$ ls > x.sh 
$ vi x. sh 

:%s/^[a-z_]*\(.*\)$/mv \0 \1/` 

、その後:

$ source x.sh 

renameは好きなことをすることができますが、私が言ったように、私はそれを学ぶことを心配したことはありません。

find . -type f -name "*_*_*.jpg" -execdir bash -c 'mv "$0" "${0##*_}"' {} \; 

をもたらすであろう:ターミナルでfindを使用して

$ brew install rename 
+0

私はこれを試していないが、ありがとう! – ABZ

関連する問題