次: Detailed If-then-else, 前: Line Group Formats, 上: If-then-else
行の書式は,if-then-else書式での行のグループの部分として入力行から出力行 に持っていく行数を制御します.
例えば,以下のコマンドは,テキストの左に変更を示す単一の文字を用いてテキ ストを出力します.出力の最初の文字は,削除行に対する`-',追加行に対 する`|',そして変更されていない行に対するスペースです.その書式には, 出力に概況が必要な場所では,改行文字が含まれます.
diff \ --old-line-format='-%l ' \ --new-line-format='|%l ' \ --unchanged-line-format=' %l ' \ old new
行の書式を指定するために,以下のオプションの一つを使用してください.シェ ルのメタ文字を含むことが多いので,formatを引用符で囲むべきです.
行の書式では,通常の文字はそれ自身を示します.変換指定は`%'で始め, 以下の形式の一つを用います.
printf
の変換指定で,Fで書式化された行番号
を意味します.例えば`%.5dn'は,printf
の書式"%.5d"
を使
用して行番号を出力します.printf
変換指定の詳細は,See Line Group Formats.
デフォルトの行の書式は,改行文字が続く`%l'です.
入力にタブ文字が含まれていて,それが出力行にとって重要な場合,行の書式の `%l'や`%L'をタブの直後に書くか(例えば, `%l' や `%L'を前置してタブ文字を使用します),-tや --expand-tabsオプションを使用すべきです.
行と行のグループの書式を組み合わせると,様々な書式を指定することが可能に なります.例えば以下のコマンドで,通常のdiffの書式に似たものを 使用します.diffの出力を詳細に制御するために,このコマンドに手 を加えることも可能です.
diff \ --old-line-format='< %l ' \ --new-line-format='> %l ' \ --old-group-format='%df%(f=l?:,%dl)d%dE %<' \ --new-group-format='%dea%dF%(F=L?:,%dL) %>' \ --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL) %<--- %>' \ --unchanged-group-format='' \ old new