LoginSignup
9
8

More than 5 years have passed since last update.

ファイル名を一括変換するコマンド一覧

Last updated at Posted at 2017-01-23

for文を使う

正直これが一番わかりやすくて楽。

ファイル名を一括変換するコマンド

% for f in `ls`; do mv $f ${f/変えたい部分/変える部分}; done

ファイル名の一部を一括削除するコマンド

% for f in `ls` ; do mv "$f" "${f#消したい部分}" ; done

findを使う

これはややこしかった。
for文の方がおすすめ

●ファイル名の先頭にキーワードを付け加える

% find /作業するPATH -type f -print0 | awk -F/ '{print $NF}' | xargs -I% mv 作業するPATH/% 作業するPATH/付与したい単語%

●ファイル名の末尾にキーワードを付け加える

% find /作業するPATH -type f -print0 | xargs -0 -I% mv % %付与したい単語

●ファイル名の先頭にあるキーワードを削除する

% find /作業するPATH -type f -print0 -name "削除したい*" | perl -pe 's/削除したい単語//g' | xargs -0 -I% mv 削除したい単語% %

●ファイル名の末尾にあるキーワードを削除する

% find /作業するPATH -type f -print0 -name "*削除したい単語" | perl -pe 's/削除したい単語//g'

 


  
renameという便利なやつがあるらしいけどMacOSXでは使えなかったので割愛

スペースが含まれるファイル名の場合

(追記)

% for f in `ls`;...

この書き方では、スペース(環境変数$IFS)が含まれるファイル名を正しく取り扱えないらしい。
なので、globを使って下のように書きます。

% for f in *;...

これならドットファイル以外の全てのファイル名を取り出せます。

9
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8