Ubuntu 16.04 LTS Desktop 壁紙

Ubuntu/Linuxのrenameコマンドでファイル名を置換する方法についての覚え書き。

 

 

通常の使い方

コマンドの後ろに置換対象の文字列、置換後の文字列、対象ファイルを記述する。

# ファイル名のfooをbarに置換
$ rename foo bar foo1.txt foo2.txt

シンプルで分かりやすい。

Ubuntuでの使い方

エラー

$ rename foo bar foo1.txt foo2.txt
Bareword "foo" not allowed while "strict subs" in use at (user-supplied code).

Ubuntuで一般的なLinuxのようにrenameコマンドを実行すると上のようなエラーが表示される。

正しい使い方

Ubuntuでrenameコマンドを使う際は書き方が少し変わるらしい。

$ ls
foo1.txt
foo2.txt
$ rename "s/foo/bar/" foo1.txt foo2.txt
$ ls
bar1.txt
bar2.txt

vimの文字列置換コマンドのような形で書くと上手くいく。

よく使うパターン

個人的によく使う置換パターン。

# 全ての空白スペースをアンダースコアに置換
$ rename "s/ /_/" *

置換されるのは1回だけで置換対象の文字列が復数合った場合は先頭のみ置換される。

置換対象にした文字列を全て置換したい場合は後ろにgをつける。

# 全ての大文字を小文字に置換する
$ rename  "y/A-Z/a-z/" *

大文字と小文字を置換する。

文字列の置換の場合はsの代わりにyを使うらしい。

sを使うと文字列置換が行われない。

参考

UbuntuTips/FileHandling/RenameCommand – Ubuntu Japanese Wiki

虎の備忘録: Ubuntu  remane を使ったファイル名の一括変換 1

 


 

【Linux】Ubuntuのrenameコマンドの使い方
Tagged on:     

コメントを残す