Cmp

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

diff - Jämför filskillnader rad för rad

Kommandot `diff` används för att jämföra skillnader mellan filer rad för rad.

Syntax

diff [ALTERNATIV] FIL1 FIL2

Beskrivning

Kommandot `diff` jämför innehållet i två filer rad för rad och visar skillnaderna mellan dem. Det är ett kraftfullt verktyg för att identifiera ändringar i textfiler, vilket gör det oumbärligt för utveckling och versionskontroll.

Alternativ

Kommandot `diff` stöder flera alternativ som kan användas för att justera dess beteende:

  • -a, --text - Behandla alla filer som textfiler.
  • -b, --ignore-space-change - Ignorera ändringar i mängden vita tecken.
  • -B, --ignore-blank-lines - Ignorera tomma rader.
  • -c, --context[=NUM] - Visa NUM rader av kontext.
  • -C, --context[=NUM] - Samma som -c.
  • -d, --minimal - Gör en minimal förändringsanalys.
  • -D, --ifdef=NAME - Generera ett C-preprocessor villkorligt.
  • -e, --ed - Generera en redigeringsskript för `ed`.
  • -f, --forward-ed - Generera en redigeringsskript i omvänd ordning.
  • -F, --show-function-line=RE - Visa funktionslinjer som matchar RE.
  • --from-file=FIL - Jämför från FIL.
  • -H, --speed-large-files - Hantera stora filer snabbare.
  • -i, --ignore-case - Ignorera skillnader i versaler/gemener.
  • --ignore-file-name-case - Ignorera versaler/gemener i filnamn.
  • --no-ignore-file-name-case - Respektera versaler/gemener i filnamn.
  • --label=ETIKETT - Använd ETIKETT istället för filnamn.
  • -l, --paginate - Skicka utdata genom `pr` för paginering.
  • -L, --paginate - Samma som -l.
  • -n, --rcs - Generera en RCS-formaterad diff.
  • -N, --new-file - Behandla saknade filer som tomma.
  • --normal - Generera en normal diff (standard).
  • -p, --show-c-function - Visa vilken C-funktion varje förändring befinner sig i.
  • -q, --brief - Rapportera endast om filer skiljer sig.
  • -r, --recursive - Jämför kataloger rekursivt.
  • -s, --report-identical-files - Rapportera när filer är identiska.
  • -S, --starting-file=FIL - Börja med att jämföra FIL.
  • --strip-trailing-cr - Ta bort vagnreturer från slutet av varje rad.
  • -t, --expand-tabs - Expandera tabbar till mellanslag.
  • -T, --initial-tab - Gör indrag med tabbar.
  • -u, --unified[=NUM] - Visa NUM rader av sammanslagen kontext.
  • -U, --unified[=NUM] - Samma som -u.
  • -v, --version - Visa versionsinformation och avsluta.
  • -w, --ignore-all-space - Ignorera alla vita tecken.
  • -W, --width=NUM - Ange maximal radbredd för utdata.
  • -x, --exclude=PATTERN - Uteslut filer som matchar PATTERN.
  • -X, --exclude-from=FIL - Läs mönster från FIL.
  • -y, --side-by-side - Visa jämförelse sida vid sida.
  • -Y, --side-by-side - Samma som -y.
  • --left-column - Visa endast skillnader från vänster fil.
  • --suppress-common-lines - Visa inte gemensamma rader i sida vid sida.

Exempel

Här är några praktiska exempel som visar hur du kan använda `diff`-kommandot:

  • För att jämföra två filer:

diff fil1.txt fil2.txt

  • För att ignorera ändringar i mängden vita tecken:

diff -b fil1.txt fil2.txt

  • För att visa en sammanhållen diff med tre rader av kontext:

diff -u=3 fil1.txt fil2.txt

  • För att jämföra kataloger rekursivt:

diff -r katalog1 katalog2

  • För att visa skillnader sida vid sida:

diff -y fil1.txt fil2.txt

Skillnader mellan macOS och Linux

Det finns några skillnader att tänka på när man använder `diff` på macOS jämfört med Linux:

  • Tillgänglighet: `diff`-kommandot är tillgängligt på både macOS och Linux. På båda plattformarna är `diff` en del av standardverktygen.
  • Alternativ: De flesta alternativ som finns på `diff` är tillgängliga på både macOS och Linux, men det rekommenderas att konsultera `man`-sidan på respektive plattform för att bekräfta tillgängliga alternativ och eventuella skillnader.

Exempel på att använda `diff` på macOS:

  • För att jämföra två filer:

diff fil1.txt fil2.txt

Det är alltid bra att konsultera `man`-sidan för `diff` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `diff`, kontrollera följande:

  • Att du använder rätt syntax och alternativ för ditt specifika kommando.
  • Att filerna du försöker jämföra existerar och är tillgängliga.
  • Att du har nödvändiga behörigheter för att läsa filerna.

Se även

  • cmp - Jämför två filer byte för byte.
  • comm - Jämför två sorterade filer rad för rad.
  • patch - Applicera en diff-fil på originalfiler.

Källor