2.2.3.1 正規表現に一致する行を表示する
Cやそれに類する言語のソースコードではないファイルで、差分がどの節にあるかを表示するには、--show-function-line=regexp(-F regexp)オプションを使います。diffは、grep形式の正規表現regexpに一致する行を、ファイル内の節の始まりとみなします。よく使われるいくつかの言語に対して、次の正規表現が推奨されています。
- ‘^[[:alpha:]$_]’
C、C++、Prolog
- ‘^(’
Lisp
- ‘^@node’
Texinfo
このオプションは、出力書式を自動では選びません。使うには、context書式(Context書式を参照)またはunified書式(Unified書式を参照)を選ぶ必要があります。他の出力書式では効果がありません。
--show-function-line(-F)オプションは、差分の各hunkより前にあり、指定した正規表現に一致する、変更されていない最も近い行を探します。その行を、context書式ではアスタリスクの行の末尾に、unified書式では「@@」の行に追加します。一致する行がなければ、そのhunkの出力は変わりません。その行が40文字を超える場合は、先頭の40文字だけを出力します。このような行に対して複数の正規表現を指定できます。diffは、最後に指定された正規表現から順に、各行が各正規表現に一致するかを調べます。このため、必要なら-pと-Fを一緒に使えます。