LoginSignup
1
4

More than 5 years have passed since last update.

ターミナルでフォルダ名を一括置換

Last updated at Posted at 2017-03-01

背景

フォルダ名が連番などで保存されていて、そのフォルダ名をまとめて置換したい場合に適用できます。
 具体的な例だと、folder0, folder1, folder2, ... , folder100 といったフォルダ名をまとめてdir0, dir1, dir2, ... , dir100 と置換したい場合。
 最初は、awkで変換してたけど、もっと簡単な方法(renameとshellの変数展開)をコメントで教えてもらいました。

方法

renameを利用する方法

おそらくこれが一番簡単。

terminal
rename s/folder/dir/ folder*

bashの変数展開を利用する方法

Bashを使ってる場合は、シェル変数の展開時に文字列を置換してしまうことができます。

terminal
for n in folder*; 
  do mv $n ${n/folder/dir};
done

awkで変換する方法

最初に思いついた方法。ちょっとシンプルじゃなくて恥ずかしいですね。

terminal
ls -d1 folder[0-9]* | awk '{print $1, $1}' | awk '{gsub("folder", "dir", $2); print "mv", $1, $2}' | sh
1
4
3

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
1
4