GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Transforming-File-Names.html ・ emacs-doc.conao3.com

32.10 Diredでのファイル名変換

本節では、ファイル名を体系的に変更するDiredコマンドについて解説します。各コマンドは、マークされたファイルの一部またはすべてを対象に、既存のファイル名を変換して作成した新しいファイル名を適用します。

Diredの基本的なファイル操作コマンド(ファイル操作を参照)と同様に、ここで説明するコマンドは、次のn個のファイル、‘*’でマークされたすべてのファイル、または現在のファイルのいずれかに対して動作します。(ファイルにマークを付けるには、Diredのマークとフラグで説明されているコマンドを使用してください。)

本節で説明するコマンドはすべて対話形式で動作します。つまり、候補となるファイルごとに操作の確認が求められます。そのため、実際に操作が必要な数よりも多くのファイルを選択し(例えば、多くのファイルにマッチする正規表現を使用する場合など)、コマンドが確認を求めた際に y または n と入力することで、選択したファイル名をフィルタリングできます。

% u

選択した各ファイルを大文字の名前に変更します (dired-upcase)。元のファイル名が Foo と bar の場合、新しいファイル名は FOO と BAR になります。

% l

選択した各ファイルを小文字の名前に変更します (dired-downcase)。元のファイル名が Foo と bar の場合、新しいファイル名は foo と bar になります。

% R from RET to RET
% C from RET to RET
% H from RET to RET
% S from RET to RET
% Y from RET to RET

これら5つのコマンドは、ファイル名の変更、コピー、ハードリンクの作成、ソフトリンクの作成、および相対ソフトリンクの作成を行い、いずれの場合も旧ファイル名から正規表現による置換を用いて新しいファイル名を算出します。

4つの正規表現置換コマンドは、選択したファイル名に対して実質的に検索・置換を行います。これらのコマンドは、正規表現 from と置換パターン to の2つの引数を受け取り、各旧ファイル名を from と照合し、一致した部分を to で置換します。to 内で ‘\&’ や ‘\digit’ を使用することで、replace-regexp のように、旧ファイル名の中でパターンが一致した部分の全部または一部を参照できます(正規表現置換 を参照)。ファイル名内で正規表現が複数回一致する場合、最初の一致箇所のみが置換されます。

例えば、% R ^.*$ RET x-\& RET は選択した各ファイルの名前の先頭に ‘x-’ を付加して名前を変更します。これとは逆に、各ファイル名の先頭から ‘x-’ を取り除くことも可能です。一つの方法は % R ^x-\(.*\)$ RET \1 RET であり、もう一つは % R ^x- RET RET です。(ファイル名全体にわたるマッチを固定するには、‘^’ や ‘$’ を使用してください。)

通常、置換処理ではファイルのディレクトリ名は考慮されず、ディレクトリ内のファイル名を対象に動作します。数値引数に0を指定すると、ディレクトリ名を含む絶対ファイル名全体に置換が適用されます。(0以外の引数は、処理対象とするファイル数を指定します。)

処理対象のファイル群に対して、処理に使用するものと同じ正規表現 from を指定すると便利です。これを行うには、該当するファイルに % m from RET をマークし、コマンド内で同じ正規表現を使用してファイルを処理します。さらに利便性を高めるため、ファイル処理用の % コマンドでは、任意の % コマンドで指定された最後の正規表現がデフォルトとして使用されます。