renameコマンドを利用することにより、ファイル名の先頭に文字列を追加したり、拡張子を一括で変更することが簡単に実現できます。
以下にrenameコマンドを使用し、ファイル名の先頭に文字列を一括で追加する例と拡張子を一括で変更する例を記します。
以下のようなファイル群があった場合、renameコマンドを以下のように使用すれば、一括でファイル名の先頭に文字列を追加することができます。
[sakura@centos6 ~]$ ls -1 * kanagawa.csv saitama.csv tokyo.csv
以下の方法でファイル名の先頭に2012_を追加します。
[sakura@centos6 ~]$ rename '' 2012_ *.csv
追加した結果は以下の通りです。
[sakura@centos6 ~]$ ls -1 2012_kanagawa.csv 2012_saitama.csv 2012_tokyo.csv
対象ファイルの先頭に文字列を一括で追加したい場合は、以下の構文になります。
rename '' 先頭に追加する文字列 対象ファイル
上記の例では、先頭に追加する文字列は 2012_ になり、対象となるファイルは *.csv になります。
尚、追加した文字列を削除したい場合は、以下のようにします。 削除前
[sakura@centos6 ~]$ ls -1 *.csv 2012_kanagawa.csv 2012_saitama.csv 2012_tokyo.csv
削除後
[sakura@centos6 ~]$ rename 2012_ '' *.csv [sakura@centos6 ~]$ ls -1 kanagawa.csv saitama.csv tokyo.csv
renameコマンドは最初に指定した引数である文字列を次の引数の文字列に置き換えます。
したがって、 rename 2012_ '' *.csv を実行すれば、先頭に文字列を追加した前のファイル名に戻ります。
以下のようなファイル群が存在している場合の例を記します。
置換する拡張子はcsvをtsvに変更します。
[sakura@centos6 ~]$ ls -1 kanagawa.csv kanagawa.dat saitama.csv saitama.dat tokyo.csv tokyo.dat
拡張子csvを拡張子tsvに変更する
[sakura@centos6 ~]$ rename .csv .tsv *.csv [sakura@centos6 ~]$ ls -1 kanagawa.dat kanagawa.tsv saitama.dat saitama.tsv tokyo.dat tokyo.tsv
拡張子csvが拡張子tsvに変更されました。
拡張子の変更例を記しましたが、実際には文字列の置換を行なっています。
上記の削除例も同様で、指定した文字列を次の引数で指定した文字列(削除の場合はシングルクオートで囲み何もなし)で置換します。
構文は以下のようになります。
rename 置換する文字列 置換文字列 対象ファイル
以上、renameコマンドを利用してファイル名を一括変換する方法でした。