GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxcmpコマンドチュートリアル(7例)

役割に関係なく、通常の作業でLinuxのコマンドラインで何かを行う場合は、コマンドラインユーティリティを使用して2つのファイルを比較したいという状況に陥る可能性があります。これを可能にするコマンドラインツールはいくつかあり、そのうちの1つは' cmpです。 'コマンド。

このチュートリアルでは、わかりやすい例から「cmp」について説明します。ただし、その前に、このチュートリアルで説明されているすべての例と手順がUbuntu16.04LTSでテストされていることを言及する価値があります。

cmpコマンド

'cmp'コマンドを使用すると、2つのファイルのバイトごとの比較を実行できます。ユーティリティは、コマンドラインオプションの形式でいくつかの機能を提供します。このチュートリアルでは、ツールがどのように機能するかについて(初心者に)良いアイデアを提供するいくつかの重要なオプションについて説明します。

1。 cmpを使用して2つのファイルを比較する方法

最も単純な形式では、「cmp」を次のように使用できます。

cmp [file1-name] [file2-name]

すでに述べたように、ツールは2つのファイルをバイトごとに比較します。違いが見つかると、ツールは停止し、違いがどの行とバイトにあるかを示す出力を生成します。

例:

cmp file1.txt file2.txt

上のスクリーンショットでわかるように、出力には、1行目のバイト20でファイルが異なることが明確に示されています。

2。 cmpに異なるバイトを出力させる方法

必要に応じて、「cmp」に出力の異なるバイトを表示させることもできます。これは、 -bを使用して実行できます コマンドラインオプション。

cmp -b [file1] [file2]

例:

cmp -b file1.txt  file2.txt

この場合、上のスクリーンショットでわかるように、違いは17番目のバイトにあります。これはfile1.txtの「l」とfile2.txtの「i」です。値154と151は、それぞれこれらのバイトの値です。

3。 cmpに両方のファイルの最初のバイトをスキップさせる方法

必要に応じて、「cmp」に両方のファイルから特定の数の初期バイトをスキップさせて、それらを比較することもできます。これは、 -iの引数としてバイト数を指定することで実行できます。 コマンドラインオプション。

cmp-i[スキップするバイト数][file1][file2]

例:

cmp -i 10 file1.txt file2.txt

このような場合(バイトをスキップするために-iを使用する場合)、比較が開始されるバイトはバイト番号ゼロとして扱われることに注意してください。

次に進むと、このツールでは、両方のファイルから異なるバイト数をスキップすることもできます。これは、次の方法で実行できます。

cmp -i [bytes-to-skip-from-first-file] : [bytes-to-skip-from-second-file] [file1] [file2]

例:

cmp -i 4:7 file1.txt file2.txt

4。 cmpにすべての異なるバイトのバイト位置(および値)を表示させる方法

必要に応じて、「cmp」コマンドですべての異なるバイトのバイト位置とバイト値を出力することもできます。この機能には、 -lを使用してアクセスできます。 コマンドラインオプション。

cmp -l [file1] [file2]

例:

cmp -l file1.txt  file2.txt

出力の最初の列(上記の例)は、異なるバイトの位置(バイト番号)を表します。 2番目の列は最初のファイルの異なるバイトのバイト値を表し、3番目の列は2番目のファイルの異なるバイトのバイト値を表します。

5。比較するバイト数を制限する方法

このツールでは、比較するバイト数を制限することもできます。たとえば、最大25バイトまたは50バイトを比較できます。これは、 -nを使用して実行できます。 コマンドラインオプション。

$ cmp-n[比較するバイト数][file1][file2]

例:

$ cmp -n 25 file1.txt file2.txt

6。 cmpコマンドを使用して進行状況メーターを表示する方法

'cmp'を使用して大きなファイル(またはパーティション)を比較しているときに、進行中の比較の進行状況を確認したい場合があります。これは、「cmp」コマンドとともに「pv」コマンドを使用して実行できます。使用できるコマンドテンプレートは次のとおりです。

$ pv [file1] | cmp -l [file2] > [output-file]

例:

$ pv file1.txt | cmp -l file3.txt > output.txt

ファイル'output.txt'には、'cmp'コマンドが生成するすべての出力が含まれることに注意してください。プログレスメーター(上のスクリーンショットで確認できます)は、「pv」コマンドによって生成されます。

通常、「pv」コマンドはLinuxにプリインストールされていません(少なくともUbuntuにはありません)。ただし、次のコマンドを使用して簡単にインストールできます。

sudo apt-get install pv

7。 'cmp'で出力を抑制させる方法

このツールを使用すると、通常の出力を抑制することもできます。これは、 -sを使用して実行できます コマンドラインオプション。

$ cmp -s [file1] [file2]

例:

$ cmp -s file1.txt file2.txt

このオプションは、スクリプトで「cmp」ユーティリティを使用する場合に便利です。たとえば、ファイルが同一であるかどうか(コマンドの終了コードにアクセスすることでわかります)に応じて、ツールが通常生成する出力の代わりにカスタムメッセージを表示したい場合があります。

結論

この記事では「cmp」コマンドオプションのほとんどについて説明したので、日常業務でツールの使用を開始するには、これらを練習する必要があります。疑問や質問がある場合は、「cmp」のマニュアルページを参照してください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)