Help us understand the problem. What is going on with this article?

Ubuntu ファイル名の一括置換(rename コマンド)

Ubuntuのファイル名置換は、少しだけクセがあるのでまとめました。
Ubuntu以外のOSはこちら

rename コマンドをインストール

sudo apt-get install rename

ファイル名の変更

単語の置き換え

rename "s/[置き換えたい単語]/[置き換え後の単語]" [ File-Path ]
# 処理結果を表示したい場合
rename -v "s/[置き換えたい単語]/[置き換え後の単語]" [ File-Path ]

"s/[置き換えたい単語]/[置き換え後の単語]" の部分は、 perlsed での置換と同じです。
fileA.shfileB.sh に置き換えるときは以下のようになります。

# `fileA.sh' renamed as `fileB.sh'
rename "s/A/B/" fileA.sh

ワイルドカードで一括置換

ワイルドカードだと予期せぬファイルまでファイル名が変わってしまう可能性があるので、利用する際は必ずテスト環境などでお試しください。

拡張子で指定

rename "s/file/test/" *.sh

前後の文字列が一致するものを指定

rename "s/file/test/" file*.sh

特定のファイルのみ操作するとき

ファイル名を複数指定

# `fileA.sh' renamed as `A.sh'
# `fileB.sh' renamed as `B.sh'
# `fileC.sh' renamed as `C.sh'
rename "s/file//" fileA.sh fileB.sh fileC.sh 

特定ワードを含むファイルのみ操作

ls | grep -v / | grep -e file | rename -v "s/file//"

先頭に特定ワードを含むファイルのみ操作

ls | grep -v / | grep -e "file*" | rename -v "s/file//"

特定ワードと、拡張子のファイルを操作

ls | grep -v / | grep -e "file" --include "*.sh" | rename -v "s/file//"

ファイル名の前後に文字列追加

ファイル名の前に文字を追加

# `A.sh' renamed as `fileA.sh'
rename "s/^/file/" A.sh

拡張子の後に文字を追加

# `fileA.sh' renamed as `fileA.sh.old'
rename "s/$/.old/" A.sh

ファイル名の後に文字列を追加
(.sh が拡張子以外では使われていないときのみ)

# `A.sh' renamed as `A_file.sh'
rename "s/.sh/_file.sh/" A.sh

正規表現を用いた置き換え

Ubuntuでは、 rename コマンドで正規表現も利用できます。
こちらのブログ様が詳しかったのでオススメです。

# すべて小文字にする
rename 'y/A-Z/a-z/' *

参考

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away