正規表現を使ってファイルをリネームする
スポンサーリンク
今まではファイルのリネームはmvでしていた
$ mv src.txt dst.txt
Ubuntuではrename
コマンドを使うことでperl正規表現を用いて以下の用にできる
$ rename -v s/\.sh/\.txt/ *.sh
Perl正規表現
基本的には変換演算子/パターン/置換文字列/変換修飾子
として記述する
変換演算子
変換演算子にs
を指定すると置換になる
その際の変換修飾子には以下のものがある
修飾子 | 説明 |
---|---|
g | 繰り返しマッチする |
i | 大文字と小文字の区別をしない |
m | 文字列を複数行として扱う |
o | 変数展開を1度だけ行う |
s | 文字列を単一行として扱う |
x | 拡張正規表現を行う |
e | 置換文字列を「式」と見なす |
変換演算子
変換演算子にy
を指定すると変換になる
その際の変換修飾子には以下のものがある
修飾子 | 説明 |
---|---|
c | 対象の文字に含まれないものを変換する |
d | 変換する文字に含まれないものを削除する |
s | 変換の結果、同じ文字が連続したものを1文字とする |
サンプル
- 拡張子変更
$ rename -v s/\.txt/\.sh/ *.txt
- 大文字を小文字に変換
$ rename -v y/A-Z/a-z/ *