'\" te .\" Copyright 1989 AT&T .\" Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. .\" Portions Copyright (c) 1992, X/Open Company Limited All Rights Reserved. .\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at http://www.opengroup.org/bookstore/. .\" The Institute of Electrical and Electronics Engineers and The Open Group, have given us permission to reprint portions of their documentation. In the following statement, the phrase "this text" refers to portions of the system documentation. Portions of this text are reprinted and reproduced in electronic form in the Sun OS Reference Manual, from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between these versions and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html. This notice shall appear on any product containing this material. .TH diff 1 "2010 年 11 月 19 日" "SunOS 5.11" "ユーザーコマンド" .SH 名前 diff \- 2 つのファイルの比較 .SH 形式 .LP .nf \fBdiff\fR [\fB-bitw\fR] [\fB-c\fR | \fB-e\fR | \fB-f\fR | \fB-h\fR | \fB-n\fR | \fB-u\fR] \fIfile1\fR \fIfile2\fR .fi .LP .nf \fBdiff\fR [\fB-bitw\fR] [\fB-C\fR \fInumber\fR | \fB-U\fR \fInumber\fR] \fIfile1\fR \fIfile2\fR .fi .LP .nf \fBdiff\fR [\fB-bitw\fR] [\fB-D\fR \fIstring\fR] \fIfile1\fR \fIfile2\fR .fi .LP .nf \fBdiff\fR [\fB-bitw\fR] [\fB-c\fR | \fB-e\fR | \fB-f\fR | \fB-h\fR | \fB-n\fR | \fB-u\fR] [\fB-l\fR] [\fB-r\fR] [\fB-s\fR] [\fB-S\fR \fIname\fR] \fIdirectory1\fR \fIdirectory2\fR .fi .SH 機能説明 .sp .LP \fBdiff\fR ユーティリティーは \fIfile1\fR と \fIfile2\fR で指定された 2 つのファイルの内容を比較し、\fIfile1\fR を \fIfile2\fR に一致させるのに必要な変更リストを標準出力に書き込みます。変更リストの大きさは最小限に留められます。ごくまれな場合を除き、\fBdiff\fR は、必要最低限の差異を生成するようにします。2 つのファイルの内容が同一であれば、何も出力しません。 .sp .LP 通常は、次のようなフォーマットの行を出力します。 .sp .in +2 .nf \fIn1\fR \fBa\fR \fIn3,n4\fR \fIn1,n2\fR \fBd\fR \fIn3\fR \fIn1,n2\fR \fBc\fR \fIn3,n4\fR .fi .in -2 .sp .sp .LP このうち \fIn1\fR と \fIn2\fR は \fIfile1\fR 中の行を表し、 \fIn3\fR と \fIn4\fR は \fIfile2\fR 中の行を表します。 これらの行は \fIfile1\fR を \fIfile2\fR へ変換するための \fBed\fR(1) コマンドに似ています。 \fBa\fR と \fBd\fR とを入れ替えて、各出力行の内容を右から左へ逆向きに読めば、 \fIfile2\fR を \fIfile1\fR に変換する方法が確認できます。 \fBed\fR の場合と同様に、一致するペアは \fIn1\fR=\fIn2\fR または \fIn3\fR \fI=\fR n4 のようになり、1 つの番号に省略されます。 .sp .LP 最初のファイルで影響を受けた行には、 ` \fB<\fR ' が付きます。 2 番目のファイルで影響を受けた行には、 ` \fB>\fR ' が付きます。 .SH オプション .sp .LP サポートしているオプションは、次のとおりです。 .sp .ne 2 .mk .na \fB\fB-b\fR\fR .ad .RS 6n .rt 末尾のスペース ( スペースとタブ文字 ) を無視し、 他のスペース列は等価に扱います。 .RE .sp .ne 2 .mk .na \fB\fB-i\fR\fR .ad .RS 6n .rt 大文字、小文字の区別を無視します。たとえば、 \fBA\fR と \fBa\fR は等しいとみなします。 .RE .sp .ne 2 .mk .na \fB\fB-t\fR\fR .ad .RS 6n .rt タブ文字を出力行上で展開します。 通常または \fB-c\fR による出力は、各行の先頭に文字を追加するので、元の行のインデントに悪影響を与え、結果として出力行を読みにくくします。このオプションは、元の行のインデントを保持します。 .RE .sp .ne 2 .mk .na \fB\fB-w\fR\fR .ad .RS 6n .rt すべてのスペース ( スペース文字とタブ文字 ) を無視し、他のスペース文字は等価に扱います。たとえば、`\fBif ( a = = b )\fR' は `\fBif(a= =b)\fR' と同じとみなします。 .RE .sp .LP 次のオプションは相互に排他的です。 .sp .ne 2 .mk .na \fB\fB-c\fR\fR .ad .RS 14n .rt 差異行の前後 3 行を追加して出力します。このオプションを使用すると、出力フォーマットが多少変わります。つまり、出力はファイルの ID と作成日で始まり、各差異部分は \fB*\fR からなる行で区切られます。\fIfile1\fR から削除された行には「—」が付きます。\fIfile2\fR に追加された行には + が付きます。1 つのファイルから他のファイルへ変更された行には、 双方のファイルに「 ! 」が付きます。 .RE .sp .ne 2 .mk .na \fB\fB-C\fR \fInumber\fR \fR .ad .RS 14n .rt 基本的に \fB-c\fR オプションと同じです。差異行の前後 \fInumber\fR 行を追加して出力します。 .RE .sp .ne 2 .mk .na \fB\fB-D\fR \fIstring\fR \fR .ad .RS 14n .rt C のプリプロセッサの制御によって \fIfile1\fR と \fIfile2\fR のマージ版を作成します。\fIstring\fR を定義しないでコンパイルすると \fIfile1\fR のコンパイル結果と同等になり、\fIstring\fR を定義すると、\fIfile2\fR を生成します。 .RE .sp .ne 2 .mk .na \fB\fB-e\fR\fR .ad .RS 14n .rt \fBfile1\fR から \fBfile2\fR を再生するために、エディタ \fBed\fR の \fBa\fR、\fIc\fR、\fId\fR コマンドのスクリプトを生成します。次のシェルプログラムは、この \fB-e\fR オプションを使用して、複数版のファイルを管理するものです。元のファイル ($1) と \fBdiff\fR によって作成される版から版への \fBed\fR スクリプト ($2,$3,...) だけが必要です。最新版が標準出力へ表示されます。 .sp .in +2 .nf (shift; cat $*; echo a\'1,$p') | ed \(mi $1 .fi .in -2 .sp .RE .sp .ne 2 .mk .na \fB\fB-f\fR\fR .ad .RS 13n .rt 類似したスクリプト( \fBed\fR では使えない) を反対順に生成します。 .RE .sp .ne 2 .mk .na \fB\fB-h\fR\fR .ad .RS 13n .rt 高速で単調な処理を行います。 .sp このオプションが有効に機能するのは、変更範囲が小さく、十分に区分されている場合です。無限長のファイルでは機能しません。 .sp h\fB- とともに使用できるのは \fR-\fB-b\fR だけです。 .sp このオプションを指定した場合、 \fBdiff\fR はディレクトリの下の階層を処理しません。 .RE .sp .ne 2 .mk .na \fB\fB-n\fR\fR .ad .RS 13n .rt \fB-e\fR と同様のスクリプトを生成しますが、順序は反対で、 各挿入または削除コマンドに変更行数を出力します。 .RE .sp .ne 2 .mk .na \fB\fB-u\fR\fR .ad .RS 13n .rt 差異行の前後 3 行を追加して出力します。\fB-c\fR オプションと似ていますが、u オプションの場合、文脈が統合されて出力されます。つまり、\fIfile1\fR で削除または変更された行には \fB-\fR が付き、\fIfile2\fR で追加または変更された行には \fB+\fR が付きます。そして、変更された行は両方のファイルとも出力されますが、追加、削除、および同一の行は 1 度だけ出力されます。また、\fIfile1\fR と \fIfile2\fR の分別も異なります。\fB-c\fR オプションの場合は \fB***\fR と \fB---\fR が出力されますが、-u オプションの場合は \fB---\fR と \fB+++\fR が出力されます。変更された行はそれぞれ次のような行で分離されます。 .sp .in +2 .nf \fB@@ -\fIn1\fR,\fIn2\fR +\fIn3\fR,\fIn4\fR @@\fR .fi .in -2 .sp .RE .sp .ne 2 .mk .na \fB\fB-U\fR \fInumber\fR\fR .ad .RS 13n .rt 出力形式は \fB-u\fR オプションと同じですが、出力する文脈の行数が \fInumber\fR になります。 .RE .sp .LP 次のオプションは、ディレクトリを比較するのに使用します。 .sp .ne 2 .mk .na \fB\fB-l\fR\fR .ad .RS 12n .rt ロングフォーマットで出力を生成します。 \fBdiff\fR で処理する前に、各テキストファイルは \fBpr\fR(1) によってページ付けされます。他の差異は記憶され、 すべてのテキストファイルの差異が報告された後で集計されます。 .RE .sp .ne 2 .mk .na \fB\fB-r\fR\fR .ad .RS 12n .rt サブディレクトリに出合うと、 \fBdiff\fR を再帰的に実行します。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR\fR .ad .RS 12n .rt 同一のファイルを報告します。そうしないと、同一のファイルは報告されません。 .RE .sp .ne 2 .mk .na \fB\fB-S\fR \fIname\fR \fR .ad .RS 12n .rt ファイル \fIname\fR からディレクトリ \fBdiff\fR を開始します。 .RE .SH オペランド .sp .LP 次のオペランドがサポートされています。 .sp .ne 2 .mk .na \fB\fIfile1\fR \fR .ad .br .na \fB\fIfile2\fR\fR .ad .RS 15n .rt 比較するファイルまたはディレクトリのパス名。 \fI file1\fR と \fIfile2\fR のどちらかに \fB-\fR を指定すると、そのファイルの代わりに標準入力が使用されます。 .RE .sp .ne 2 .mk .na \fB\fIdirectory1\fR \fR .ad .br .na \fB\fIdirectory2\fR\fR .ad .RS 15n .rt 比較するディレクトリのパス名 .RE .sp .LP \fIfile1\fR と \fIfile2\fR のうちどちらか一方だけがディレクトリの場合、\fBdiff\fR が比較するのは、ディレクトリでない方のファイルの内容と、当該ディレクトリ中のファイルのうち名前がディレクトリでない方のファイル名の最終コンポーネントと同一のファイルの内容です。 .SH 使用法 .sp .LP ファイルが 2 ギガバイト ( 2^31 バイト) 以上ある場合の \fBdiff\fR の動作については、 \fBlargefile\fR(5) を参照してください。 .SH 使用例 .LP \fB例 1 \fR\fBdiff\fR コマンドを使用する .sp .LP 次のコマンドでは、\fBdir1\fR がディレクトリで \fBx\fR という名のディレクトリを含んでいて、 \fBdir2\fR もディレクトリで \fBx\fR という名のディレクトリを含んでいて、 \fBdir1/x\fR と \fBdir2/x\fR の両方が \fBdate.out\fR というファイルを含んでいて、さらに \fBdir2/x\fR が \fBy\fR というファイルを含んでいると仮定します。 以下のような出力が生成されます。 .sp .in +2 .nf example% \fBdiff -r dir1 dir2\fR Common subdirectories: dir1/x and dir2/x Only in dir2/x: y diff -r dir1/x/date.out dir2/x/date.out 1c1 < Mon Jul 2 13:12:16 PDT 1990 --- > Tue Jun 19 21:41:39 PDT 1990 .fi .in -2 .sp .SH 環境 .sp .LP \fBdiff\fR の実行に影響を与える次の環境変数についての詳細は、\fBenviron\fR(5) を参照してください。\fBLANG\fR、\fBLC_ALL\fR、\fBLC_CTYPE\fR、\fBLC_MESSAGES\fR、\fBLC_TIME\fR、および \fBNLSPATH\fR。 .sp .ne 2 .mk .na \fB\fBTZ\fR\fR .ad .RS 6n .rt \fB-C\fR または \fB-c\fR オプションで出力される時間表示 のタイムゾーン ( タイムゾーン ) に影響を与えるロケールを指定します。 .RE .SH 終了ステータス .sp .LP 次の終了ステータスが返されます。 .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 7n .rt 違いは見つかりませんでした。 .RE .sp .ne 2 .mk .na \fB\fB1\fR\fR .ad .RS 7n .rt 違いが見つかりました。 .RE .sp .ne 2 .mk .na \fB\fB>1\fR \fR .ad .RS 7n .rt エラーが発生した。 .RE .SH ファイル .sp .ne 2 .mk .na \fB\fB/tmp/d?????\fR \fR .ad .RS 19n .rt 比較に用いる一時ファイル .RE .sp .ne 2 .mk .na \fB\fB/usr/lib/diffh\fR \fR .ad .RS 19n .rt \fB-h\fR オプション用の実行可能ファイル .RE .SH 属性 .sp .LP 属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。 .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/core-os _ CSI有効 _ インタフェースの安定性確実 _ 標準T{ \fBstandards\fR(5) を参照してください。 T} .TE .SH 関連項目 .sp .LP \fBbdiff\fR(1), \fBcmp\fR(1), \fBcomm\fR(1), \fBdircmp\fR(1), \fBed\fR(1), \fBpr\fR(1), \fBsdiff\fR(1), \fBattributes\fR(5), \fBenviron\fR(5), \fBlargefile\fR(5), \fBstandards\fR(5) .SH 注意事項 .sp .LP オプション \fB-e\fR または \fB-f\fR 指定で生成される編集用スクリプトは、 ピリオド (\fB\&.\fR) だけからなる行の作成に関しては慎重です。 .sp .LP Missing NEWLINE at end of file は、問題のファイルの最終行に復帰改行がないことを意味します。 最終行に差異がある場合、フラグが付けられて出力されます。しかし、出力には差異がないように見えます。