目次
compコマンドの使い方
「comp」コマンドは二つのファイルを文字単位で詳細に比較するために使います。
例えば、以下の二つファイルを比較することを考えます。
【file_0.txt】
【file_1.txt】
この二つのファイルを比較するには、以下のコマンドを実行します。
1 |
comp /a /l file_0.txt file_1.txt |
以下は実行結果です。
ファイルの内容を一文字ずつ比較して相違点があれば、「LINE [行数] で比較エラーがあります」という警告の下に相違箇所が表示されます。この例だと、1行目の「rain」と「snow」、および二行目の「雨」と「雪」に違いがあることが分かります。
一文字ずつ比較するのが「comp」コマンドの特徴です。ファイル比較のための別のコマンドに「fc」コマンドがありますが、こちらはもっと大雑把に行単位でファイル同士を比較します。詳細は「fc(ファイルの比較) -コマンド別解説-」をご覧下さい。
「/a」オプションは、比較結果をアスキー形式(人間が読める文字形式)で表示するためのもので、大抵の場合はこのオプションは付けて実行します。
「/l」オプションは、相違箇所がある行数を表示するためのもので、「LINE [行数] で比較エラーがあります」と表示されたのはこのオプションを指定したからです。
表示の最終行では、
「ほかのファイルを比較しますか(Y/N)?」
と聞かれますので、続けてファイルを比較したい場合は「Y」を入力して、二つの比較ファイルとオプションを入力すれば、比較を続けることができます(下図は「Y」を入力して比較を続けた例です)。
続けて、比較を行う必要がなければ「N」を入力します。
ファイルの比較したい行を制限する
比較するファイルがものすごく巨大な場合には、すべての行を比較すると時間がかかりすぎたり、相違箇所の表示が膨大になったりしてしまいます。
そんな場合には、「ファイルの上から何行目までを比較する」といった設定が可能です。「/n=[行番号]」オプションを使うと、先頭行から指定した行番号までの比較を行います。
以下のコマンドは前節で示した2つのファイルを比較した結果ですが、「/n=1」を追加して1行目まで(つまり1行目だけ)の比較を行っています。
1 |
comp /n=1 /a /l file_0.txt file_1.txt |
以下の実行結果を見ると、2行目の相違点が表示されなくなっており1行目だけが比較されたことが分かります。
「comp」コマンドと「fc」コマンドの違い
バッチコマンドには「comp」コマンドと、もう一つ「fc」コマンドというファイルの比較コマンドが用意されています。
「comp」コマンドは各行の一文字づつを細かく比較するのに対して、「fc」コマンドは「この行に違いがあります」といった行単位での大雑把な比較結果を出力します。
以下の図は同じファイルを、それぞれ「comp」と「fc」コマンドを使って比較した結果です。
【「comp」コマンドによるファイルの比較】
【「fc」コマンドによるファイルの比較】
通常ファイルの比較を行うときには何行目に違いがあるという情報だけで事足りる場合が多いため、個人的には「fc」コマンドを使ってファイルの比較を行う頻度が高いと思われます。
「fc」コマンドについての詳しい解説は「fc(ファイルの比較) -コマンド別解説-」を参照して下さい。