{"id":11278,"date":"2022-01-08T16:32:59","date_gmt":"2022-01-08T16:32:59","guid":{"rendered":"https:\/\/profi-tutorials.de\/linux\/?p=11278"},"modified":"2022-01-08T16:33:00","modified_gmt":"2022-01-08T16:33:00","slug":"befehl-cmp","status":"publish","type":"post","link":"https:\/\/profi-tutorials.de\/linux\/grundlagen\/befehl-cmp\/","title":{"rendered":"Der Befehl cmp"},"content":{"rendered":"<p>In diesem Beitrag lernen Sie den Befehl cmp (<strong>c<\/strong>o<strong>mp<\/strong>are) kennen, welcher unter UNIX- \/ Linux-Betriebssystemen eingesetzt wird, um zwei Dateien byteweise miteinander zu vergleichen. Hierdurch ist cmp insbesondere f&uuml;r den Vergleich von Bin&auml;rdateien geeignet. Er &auml;hnelt anderen Befehlen f&uuml;r den Vergleich von Dateien, wie beispielsweise dem <a href=\"https:\/\/profi-tutorials.de\/linux\/grundlagen\/befehl-diff\/\" target=\"_blank\" style=\"outline: none;\" rel=\"noopener\">Befehl diff<\/a>.<\/p>\n<p>Der Befehl ist Teil des Pakets diffutils und somit auf den meisten Systemen bereits vorinstalliert.<\/p>\n<h2 id=\"t-1641481481402\">Allgemeine Syntax<\/h2>\n<p>Die allgemeine <a class=\"glossaryLink cmtt_Allgemein cmtt_Informatik\" aria-describedby=\"tt\" data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;Syntax&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;&#8203;Im  Allgemeinen wird unter Syntax ein Regel&#8203;system verstanden, welches zur  Kombination elementarer Zeichen zu zusammengesetzten &#8203;Zeichen in (...)&lt;\/div&gt;\" href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/syntax\/\" target=\"_blank\" data-mobile-support=\"0\" data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex=\"0\" role=\"link\">Syntax<\/a> von <strong>cmp <\/strong>lautet folgenderma&szlig;en:<\/p>\n<pre>cmp [Optionen] [Datei 1] [Datei 2]<\/pre>\n<p>Werden keine Optionen &uuml;bergeben, dann zeigt <strong>diff <\/strong>standardm&auml;&szlig;ig die Position an, ab welcher sich die Bytes der beiden Dateien erstmals voneinander unterscheiden.<\/p>\n<h5>Beispiel: cmp ohne Optionen<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Dieses Beispiel zeigt kurz die Anwendung des Befehls <\/span>cmp <span style=\"font-weight: normal;\">ohne Optionen. Verglichen werden zwei kleine Textdateien, dessen Inhalte sich leicht voneinander unterscheiden.<\/span><\/h6>\n<h6>Inhalt Eingabedatei 1 (&ldquo;benutzer1.txt&rdquo;):<\/h6>\n<p>bibo admina hedv bernie tiffy<\/p>\n<h6>Inhalt Eingabedatei 2 (&ldquo;benutzer2.txt&rdquo;):<\/h6>\n<p>bibo kermit hedv tiffy bernie<\/p>\n<h6>Eingabe:<\/h6>\n<p><strong>cmp <\/strong>werden nun nur die beiden Dateien <strong>&ldquo;benutzer1.txt&rdquo;<\/strong> und <strong>&ldquo;benutzer2.txt&rdquo;<\/strong> f&uuml;r den Vergleich &uuml;bergeben.<\/p>\n<p>cmp benutzer1.txt benutzer2.txt<\/p>\n<h6>Nach Ausf&uuml;hrung:<\/h6>\n<p>Der Ausgabe ist nun zu entnehmen, dass sich beide Dateien erstmals in ihrem <strong>6. Byte<\/strong>, welches sich in <strong>Zeile 1<\/strong> befindet, voneinander unterscheiden.<\/p>\n<p>benutzer1.txt benutzer2.txt differieren: Byte 6, Zeile 1<\/p>\n<h2 id=\"t-1641481481403\">Wichtige Optionen<\/h2>\n<p>Dieser Abschnitt behandelt die wichtigsten Optionen des Befehls <strong>diff<\/strong>.<\/p>\n<h3 id=\"t-1641481481404\">-b &ndash; Unterschiedliche Bytes ausgeben<\/h3>\n<p>Mithilfe der <strong>Option -b<\/strong> ist es m&ouml;glich, die sich unterscheidenden Bytes auszugeben.<\/p>\n<pre>cmp -b [Datei 1] [Datei 2]<\/pre>\n<h5>Beispiel: Option -b<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Dieses Beispiel zeigt die Verwendung der <\/span>Option -b<span style=\"font-weight: normal;\"> f&uuml;r die zus&auml;tzliche Ausgabe der unterscheidenden Bytes. Es werden wieder dieselben beiden <\/span>Eingabedateien &ldquo;benutzer1.txt&rdquo;<span style=\"font-weight: normal;\"> und <\/span>&ldquo;benutzer2.txt&rdquo;<span style=\"font-weight: normal;\">, wie im ersten Beispiel ohne Optionen verwendet.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p>cmp -b benutzer1.txt benutzer2.txt<\/p>\n<h6>Ausgabe:<\/h6>\n<p>Es werden nun zus&auml;tzlich <strong>ASCII-Code<\/strong> und das tats&auml;chliche <strong>Zeichen <\/strong>ausgegeben.<\/p>\n<p>benutzer1.txt benutzer2.txt differieren: Zeichen 6, Zeile 1 ist 12 ^J 153 k<\/p>\n<h3 id=\"t-1641481481405\">-i &ndash; Erste Anzahl Bytes &uuml;berspringen<\/h3>\n<p>Die <strong>Option -i<\/strong> erm&ouml;glicht das &Uuml;berspringen einer definierten Anzahl Bytes in den Eingabedateien. Wird ein positiv ganzzahliger <strong>Wert N<\/strong> f&uuml;r die Anzahl angegeben, so &uuml;berspringt <strong>cmp <\/strong>die ersten <strong>N Bytes<\/strong> beider Dateien:<\/p>\n<pre>cmp -i [N] [Datei 1] [Datei 2]<\/pre>\n<p>Alternativ ist auch die Angabe zweier durch einen <strong>Doppelpunkt &ldquo;:&rdquo;<\/strong> getrennter <strong>Werte N, M<\/strong> m&ouml;glich. In diesem Fall &uuml;berspringt <strong>cmp <\/strong>die ersten <strong>N Bytes<\/strong> der ersten Eingabedatei und die ersten <strong>M Bytes<\/strong> der zweiten Eingabedatei:<\/p>\n<pre>cmp -i [N]:[M] [Datei 1] [Datei 2]<\/pre>\n<h5>Beispiel: Option -i<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Hier werden mithilfe der <\/span>Option -i<span style=\"font-weight: normal;\"> eine bestimmte Anzahl Bytes zu Beginn der beiden Eingabedateien &uuml;bersprungen. Es werden wieder die bereits bekannten Dateien verwendet.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p style=\"\">Der <strong>Option -i<\/strong> wird der <strong>Wert 12<\/strong> &uuml;bergeben, um <strong>12 Bytes<\/strong> zu &uuml;berspringen. &Uuml;bersprungen wird somit in der ersten Eingabedatei die <strong><a class=\"glossaryLink cmtt_Allgemein cmtt_Informatik\" aria-describedby=\"tt\" data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;String&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;Ein String ist in der Informatik eine Zeichenkette - stellt also eine endliche Folge von Zeichen aus einem bestimmten Zeichensatz,(...)&lt;\/div&gt;&lt;div class=cmtt_synonyms_wrapper&gt;&lt;div class=cmtt_synonyms_title&gt;Synonyms: &lt;\/div&gt;&lt;div class=cmtt_synonyms&gt;Zeichenkette&lt;\/div&gt;&lt;\/div&gt;\" href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/string\/\" target=\"_blank\" data-mobile-support=\"0\" data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex=\"0\" role=\"link\">Zeichenkette<\/a> &ldquo;bibo admina &ldquo;<\/strong> und in der zweiten Eingabedatei <strong>&ldquo;bibo kermit &ldquo;<\/strong>. Zur Verdeutlichung wird hier auch wieder die <strong>Option -b<\/strong> mit angegeben.<\/p>\n<p>cmp -i 12 -b benutzer1.txt benutzer2.txt<\/p>\n<h6>Ausgabe:<\/h6>\n<p>In der Ausgabe ist zu sehen, dass sich die beiden nun verglichenen Inhalte ab dem <strong>6. Zeichen<\/strong> voneinander unterscheiden.<\/p>\n<p>benutzer1.txt benutzer2.txt differieren: Zeichen 6, Zeile 1 ist 12 ^J 164 t<\/p>\n<h3 id=\"t-1641481481406\">-l &ndash; Alle unterscheidenden Bytes ausgeben<\/h3>\n<p>Wird die <strong>Option -l<\/strong> angegeben, dann gibt <strong>cmp <\/strong>nicht nur das erste sich unterscheidende Byte, sondern alle aus.<\/p>\n<pre>cmp -l [Datei 1] [Datei 2]<\/pre>\n<h5>Beispiel: Option -l<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Dieses Beispiel zeigt die Anwendung der <\/span>Option -l<span style=\"font-weight: normal;\"> f&uuml;r die Ausgabe aller unterscheidenden Bytes.<\/span><\/h6>\n<h6>Inhalt Eingabedatei 1 (&ldquo;silos1.txt&rdquo;):<\/h6>\n<p>it-consulting linux e-business<\/p>\n<h6>Inhalt Eingabedatei 2 (&ldquo;silos2.txt&rdquo;):<\/h6>\n<p>it-consulting fotos e-business<\/p>\n<h6>Eingabe:<\/h6>\n<p>cmp -l silos1.txt silos2.txt<\/p>\n<h6>Nach Ausf&uuml;hrung:<\/h6>\n<p>In der Ausgabe sind nun zeilenweise die Unterschiede zwischen beiden Dateien zu entnehmen. Zu Beginn jeder Zeile steht dabei jeweils die <strong>Position <\/strong>der sich unterscheidenden Bytes. Darauf folgt zuerst der <strong>ASCII-Code<\/strong> des Zeichens in der ersten Datei und dann der des Zeichens in der zweiten Datei.<\/p>\n<p>15 154 14616 151 15717 156 16418 165 15719 170 163<\/p>\n<h5>Beispiel: Option -l kombiniert mit Option -b<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">Die <\/span>Option -l<span style=\"font-weight: normal;\"> wird in diesem Beispiel mit der <\/span>Option -b<span style=\"font-weight: normal;\"> kombiniert, um neben den <\/span>ASCII-Codes<span style=\"font-weight: normal;\"> auch die tats&auml;chlichen Zeichen auszugeben. Es werden dieselben Eingabedateien verwendet, wie im vorherigen Beispiel.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p>cmp -l -b silos1.txt silos2.txt<\/p>\n<h6>Nach Ausf&uuml;hrung:<\/h6>\n<p>Links neben den <strong>ASCII-Codes<\/strong> werden nun jeweils auch die Zeichen ausgegeben. Hierdurch wird in diesem Fall direkt erkennbar, dass sich die beiden <a class=\"glossaryLink cmtt_Allgemein cmtt_Informatik\" aria-describedby=\"tt\" data-cmtooltip=\"&lt;div class=glossaryItemTitle&gt;Wort&lt;\/div&gt;&lt;div class=glossaryItemBody&gt;Ein Wort ist in der Informatik eine endliche Folge &uuml;ber einem Alphabet.&lt;\/div&gt;\" href=\"https:\/\/profi-tutorials.de\/linux\/glossar\/wort\/\" target=\"_blank\" data-mobile-support=\"0\" data-gt-translate-attributes='[{\"attribute\":\"data-cmtooltip\", \"format\":\"html\"}]' tabindex=\"0\" role=\"link\">W&ouml;rter<\/a> <strong>&ldquo;linux&rdquo;<\/strong> und <strong>&ldquo;fotos&rdquo;<\/strong> (unten hervorgehoben) in den Inhalten der Eingabedateien unterscheiden.<\/p>\n<p>15 154 <strong>l<\/strong> 146 <strong>f<\/strong>16 151 <strong>i<\/strong> 157 <strong>o<\/strong>17 156 <strong>n<\/strong> 164 <strong>t<\/strong>18 165 <strong>u<\/strong> 157 <strong>o<\/strong>19 170 <strong>x<\/strong> 163 <strong>s<\/strong><\/p>\n<h3 id=\"t-1641481481407\">-n &ndash; H&ouml;chstens N Bytes vergleichen<\/h3>\n<p>Durch Angabe der <strong>Option -n<\/strong> l&auml;sst sich festlegen, dass maximal <strong>N Bytes<\/strong> verglichen werden.<\/p>\n<pre>cmp -n [N] [Datei 1] [Datei 2]<\/pre>\n<h5>Beispiel: Option -n<\/h5>\n<h6 style=\"\"><span style=\"font-weight: normal;\">In diesem Beispiel wird die Option -n verwendet, um nur bis zu einer definierten maximalen Anzahl Bytes zu vergleichen. Auch hier werden dieselben Eingabedateien verwendet, wie im vorangegangenen Beispiel.<\/span><\/h6>\n<h6>Eingabe:<\/h6>\n<p style=\"\">Der <strong>Option -n<\/strong> wird der <strong>Wert 18<\/strong> &uuml;bergeben, um maximal <strong>18 Bytes<\/strong> der Eingabedateien zu vergleichen. Weiterhin werden hier zugunsten einer verst&auml;ndlicheren Ausgabe auch die <strong>Optionen -l<\/strong> und <strong>-b <\/strong>verwendet.<\/p>\n<p>cmp -n 18 -l -b silos1.txt silos2.txt<\/p>\n<h6>Nach Ausf&uuml;hrung:<\/h6>\n<p>Der Ausgabe sind die bereits bekannten Unterschiede zwischen beiden Dateien nun nur bis zum <strong>18. Byte<\/strong> zu entnehmen. Ab dem <strong>19. Byte<\/strong> wurde nicht weiter verglichen, wodurch auch die beiden sich unterscheidenden <strong>Zeichen &ldquo;x&rdquo;<\/strong> und <strong>&ldquo;s&rdquo;<\/strong> nicht l&auml;nger angezeigt werden.<\/p>\n<p>15 154 l 146 f16 151 i 157 o17 156 n 164 t18 165 u 157 o<\/p>\n<p style=\"text-align: center;\">Abonniere JETZT unseren Newsletter!<\/p>\n<p style=\"text-align: center;\">Verpasse nie wieder <strong>neue<\/strong> Beitr&auml;ge und <strong>exklusive Insider-Only-Inhalte!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Beitrag lernen Sie den Befehl cmp (compare) kennen, welcher unter UNIX- \/ Linux-Betriebssystemen eingesetzt wird, um zwei Dateien byteweise miteinander zu vergleichen. Hierdurch ist cmp insbesondere f\u00fcr den Vergleich von Bin\u00e4rdateien geeignet. Er \u00e4hnelt anderen Befehlen f\u00fcr den Vergleich von Dateien, wie beispielsweise dem Befehl diff. Der Befehl ist Teil des Pakets diffutils [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11281,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"none","_seopress_titles_title":"%%post_title%% %%sep%% %%sitetitle%%","_seopress_titles_desc":"In diesem Beitrag lernen Sie den Befehl cmp kennen, welcher unter UNIX- \/ Linux dazu verwendet wird, um zwei Dateien byteweise miteinander zu vergleichen.","_seopress_robots_index":"","_seopress_analysis_target_kw":"UNIX,Linux,Befehl,Befehle,Option,Optionen,Betriebssystem,Betriebssysteme,Betriebssystemen,Syntax,Beispiel,Beispiele,Tutorial,Tutorials,Profi-Tutorials,Profi-Tutorials.de,cmp,compare,Unterschied,Unterschiede,Differenz,Differenzen,Vergleich,vergleichen,vergleicht,Bin\u00e4rdatei,Bin\u00e4rdateien,Byte,Bytes","footnotes":""},"categories":[7],"tags":[],"class_list":["post-11278","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-grundlagen"],"_links":{"self":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/11278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/comments?post=11278"}],"version-history":[{"count":111,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/11278\/revisions"}],"predecessor-version":[{"id":11446,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/posts\/11278\/revisions\/11446"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media\/11281"}],"wp:attachment":[{"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/media?parent=11278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/categories?post=11278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/profi-tutorials.de\/linux\/wp-json\/wp\/v2\/tags?post=11278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}