Jämföra filer i Linux (diff-kommando). En översikt över verktyg för att visuellt jämföra och lösa sammanslagningskonflikter Jämför strängar i linux-filer

Det är ofta nödvändigt för webbansvariga eller webbplatsägare att jämföra två filer efter innehåll. Den här artikeln visar hur du jämför två filer med varandra. Den beskriver alla metoder jag känner till för att jämföra textfiler och skript (html, css, php och så vidare).

Metod 1. Meld

Meld- ett grafiskt verktyg för att få skillnader och slå samman två filer, två kataloger. Meld är ett visuellt verktyg för jämförelse av filer och kataloger för Linux. Meld riktar sig främst till utvecklare. Det kan dock vara användbart för alla användare som behöver ett bra verktyg för att jämföra filer och kataloger.

I Meld kan du jämföra två eller tre filer, eller två eller tre kataloger. Du kan se en arbetskopia från populära versionskontrollsystem som CVS, Subversion, Bazaar-NG och Mercurial. Meld är tillgängligt för de flesta Linux-distributioner (Ubuntu, Suse, Fedora, etc.) och finns i deras huvudlager.

# aptitude installation meld

Metod 2. Jämföra innehållet i två filer i WinMerge-programmet.

Det kostnadsfria programmet WinMerge låter dig jämföra inte bara innehållet i filer, det jämför också innehållet i hela mappar. WinMerge är ett Jämför och sammanfogningsverktyg med öppen källkod för Windows. WinMerge kan jämföra både filer och mappar, visa skillnader i visuell textform som är lätt att förstå och hantera.

Efter installationen, öppna menyalternativet "Arkiv" - "Öppna". Välj filer att jämföra. För att göra detta, klicka på knappen "Bläddra" och välj filen. När du har valt filerna klickar du på knappen "OK".

Du kan också redigera filer i WinMerge. Efter att ha stängt jämförelsefönstret kommer programmet att erbjuda att spara ändringarna i filerna.

Metod 3.diff

diffär ett filjämförelseverktyg som visar skillnaden mellan två filer.

    För att jämföra kataloger använd detta kommando: $ diff -qr< current-directory> < backup-directory>

Metod 4. Kompare

Kompare - Visar skillnader mellan filer. Vet hur man jämför innehållet i filer eller kataloger, samt skapar, visar och applicerar korrigeringsfiler. Kompare är ett grafiskt diff-verktyg som låter dig hitta skillnader i filer samt kombinera dem. Den är skriven i Qt och designad främst för KDE. Här är dess huvudfunktioner:

    Stöd för flera diff-format;

    Stöd jämförelse av linux-filer och kataloger;

    Stöd för visning av diff-filer;

    Anpassningsbart gränssnitt;

    Skapa och applicera patchar på filer.

Metod 5. Jämföra filer i Total Commander

    Operativsystem som stöds: Windows

Total Commander har ett verktyg för att jämföra filer efter innehåll, där du inte bara kan jämföra innehåll, utan även redigera och kopiera det från en fil till en annan.

Efter att ha startat Total Commander - i en av panelerna välj (Infoga nyckel) den första filen för jämförelse - i den andra panelen öppna mappen med den andra filen och placera markören på den. Vi kallar programmet för jämförelse: "Filer → Jämför efter innehåll".

För att göra ändringar i filen klickar du bara på knappen "Redigera". Programmet innehåller funktionerna att kopiera och rulla tillbaka, söka och ändra kodningen. Om du har gjort ändringar i filen kommer du att efter att ha stängt jämförelsefönstret uppmanas att spara ändringarna.

Metod 6. Jämföra filer i Notepad ++

    Operativsystem som stöds: Windows, kan köras på Linux

Notepad ++ kan inte jämföra filer. För att den här funktionen ska visas i Notepad ++ måste du installera plugin-programmet "Compare".

Starta editorn - gå till menyalternativet "Plugins" - "Plugin Manager" - "Visa Plugin Manager". I det nya fönstret väljer du plugin "Jämför" och trycker på knappen "Installera".

Efter installation av plugin, öppna två filer och välj menyn "Plugins" - "Compare" - "Compare (Alt + D)". Resultatet av filjämförelsen kommer att presenteras i separata paneler. Det kommer att finnas en varningsskylt bredvid linjerna där skillnaderna hittades.

Metod 7. Jämföra filer med Windows-kommandoraden

Att jämföra med Windows-kommandoraden (cmd.exe) tillåter dig inte att redigera filer, men du kan helt enkelt jämföra innehållet i filerna med den här metoden.

För att anropa Windows kommandotolk, gå till Start - Alla program - Tillbehör - Kommandotolk eller tryck på Windows-tangent + R, skriv cmd och tryck på Retur.

Vid kommandotolken anger du kommandot:

fc / N sökväg till första fil sökväg till andra fil

Oavsett vilket system jag måste bråka med koden blir det förr eller senare för dyrt att jämföra olika versioner av källorna. Här är några lätta gratisverktyg för att hitta filskillnader för Linux, Windows och Mac. Det allmänna lanseringsformatet är fil1 fil2.

Under Windows gör WinMerge ett utmärkt jobb med att jämföra innehållet i filer (och till och med kataloger, vilket ibland inte är värdelöst). Lättviktig. Inte bunden till någon IDE. Skrivet i Qt och cross-platform - ska köras på nix. Förutom filer kan den jämföra innehållet i kataloger (inklusive baserat på regexp-masker). Du kan lägga till ytterligare plugins.

WinMerge är ett plattformsoberoende filjämförelseverktyg och mer

Mac - opendiff. Representerar en separat Xcode-komponent. Det är mycket möjligt att fristående startas från kommandoraden. Skillnaderna är markerade i ljusgrått, men förresten vet den hur man visar med pilar vad som har lagts till var. Det kan slås samman (med -merge-omkopplaren). Om du förutom filerna som jämförs anger en gemensam förfaderfil efter -ancestor-växeln, så kommer jämförelsen att göras med den. Vet hur man jämför mappar.

opendiff verktyg - gratis filjämförelseverktyg på Mac-system

Linux -. Finns på alla plattformar (Windows, Mac, Linux) på grund av att den även är skriven i Qt. Kan jämföra upp till tre filer eller kataloger. Stöder möjligheten att slå samman ändringar, med redigeringsstöd för manuell konfliktlösning.

Verktyget kdiff3 - jämför två filer

UPPDATERING 18.10.2013

Om du i nix arbetar för Gnom är meld ett utmärkt val. Integration med populära versionskontrollsystem (Git, Subversion, etc.), verktyg för sammanslagning - automatisk sammanfogning, redigering med att fånga aktuella skillnader i farten, syntaxmarkering. Det finns portar för OS X Windows.

Tja, på det yttersta (om inget tredje part kan installeras) kommer en ful skillnad till undsättning från kommandoraden (förinstallerat på nix-liknande system, inklusive både Mac och Solaris). Flexibel. Du kan leka med inställningarna länge och med bravur för att kunna visa skillnader baserat på en mask (-F), för att få en jämförelse i de vanliga två kolumnerna (-side-by-side-tangenten), etc. För stora okända filer föredrar jag utdata i ett "kontext"-format, när inte bara de ändrade raderna visas, utan även de som ligger intill dem.

För att jämföra mer än två filer kan diff3 vara bra.

För att jämföra två eller flera filer har Linux ett diff-kommando. Den kan jämföra både enskilda filer och kataloger. Låt oss ta en titt på syntaxen, alternativen för kommandot diff och några exempel på användning.

Diff kommandosyntax

Kommandot diff har följande syntax:

Diff [alternativ] filer-eller-kataloger

Vi anger alternativ och matar in två eller flera filer eller kataloger som vi behöver jämföra.

Diff kommandoalternativ

Låt oss ta en titt på huvudalternativen för kommandot diff. Jag kommer bara att täcka de alternativ som jag själv använder mest.

-Eignorera ändringar associerade med tillägget av ett tabbtecken i texten.
-bignorera ändringar relaterade till att lägga till mellanslag.
-wignorera ändringar relaterade till tillägg av mellanslag och flikar.
-Bignorera nya tomma rader.
-p (eller —show-c-function)visa namnet på C-språkfunktionen där ändringarna hittades.
-y (eller -sida-vid-sida)visa resultaten i två kolumner.
-rbläddra i kataloger rekursivt.
-X FILexkludera från sökfiler vars namn matchar mönstren i FILE-filen.
-d (eller -minimal)försök hitta så få förändringar som möjligt (det vill säga eliminera falska positiva).

Exempel på användning av kommandot diff

Jämför två textfiler

För en enkel jämförelse av två textfiler med namnet myfile1 och myfile2, kör kommandot i terminalen:

Diff minfil1 minfil2

Det är bekvämt att omdirigera utdata från diff-kommandot till en fil med tillägget diff. De flesta textredigerare i Linux, som Gedit, känner igen den här filen och markerar dess syntax. För att skicka jämförelseresultatet till filen changes.diff måste du använda symbolen för omdirigering av ström (>):

Diff minfil1 minfil2> ändringar.diff

Jämförelse av kataloger som innehåller textfiler

Låt oss titta på ett exempel på att jämföra två kataloger (mydir1 och mydir2) som innehåller textfiler. Den största skillnaden här från exemplet ovan är att vi lägger till alternativet -r för att rekursivt gå igenom filer i kataloger.

Diff -r mydir1 mydir2> ändringar.diff

Anta nu att det finns mycket skräp i katalogerna där vi jämför filer som vi inte borde jämföra. Låt oss skapa en fil excludeFiles och skriva mallar och filnamn i den som vi inte ska jämföra. Till exempel kan innehållet i excludeFiles se ut så här:

* .o ChangeLog * * .bak * .exe

Nu säger vi åt diff-kommandot att använda våra excludeFiles när vi jämför kataloger:

Diff -r -X excludeFiles mydir1 mydir2> changes.diff

Därför jämför vi filer vars namn inte matchar mönstren i excludeFiles-filen, till exempel vasya.exe eller ChangeLog12.

Låt oss lägga till några fler alternativ, som beskrivs ovan, för att förbättra jämförelseresultatet:

Diff -rwBd -X excludeFiles mydir1 mydir2> changes.diff

Vi jämför filer i katalogerna mydir1 och mydir2, ignorerar ändringar relaterade till tillägg av tomma rader, blanksteg, tabbar och använder även filnamnsmönster i excludeFiles för att utesluta onödiga filer från jämförelse.

Slutsats

Du kan få mer information om hur du använder kommandot diff på ditt Linux-system genom att köra kommandot:

Man diff

Det finns även program som låter dig jämföra filer med hjälp av ett grafiskt gränssnitt. Till exempel programmet Meld som tydligt visar var och vad som har ändrats i filerna.

Ibland blir det nödvändigt att jämföra flera filer med varandra. Detta kan vara användbart när man analyserar skillnaden mellan flera versioner av en konfigurationsfil, eller helt enkelt för att jämföra olika filer. I Linux finns det flera verktyg för detta, både för att arbeta genom terminalen och i det grafiska gränssnittet.

I den här artikeln kommer vi att ta en titt på hur Linux-filjämförelse utförs. Låt oss ta en titt på de mest användbara metoderna, både för terminalen och i grafiskt läge. Låt oss först titta på hur man jämför en linux-fil med hjälp av diff-verktyget.

Diff linux-verktyget är ett program som körs i konsolläge. Dess syntax är mycket enkel. Ring verktyget, överför de nödvändiga filerna och ställ även in alternativ om det behövs:

$ diff alternativ fil1 fil2

Mer än två filer kan överföras vid behov. Innan vi går vidare till exempel, låt oss ta en titt på verktygsalternativen:

  • -q- visa endast skillnader mellan filer;
  • -s- visa endast matchande delar;
  • -Med- visa erforderligt antal rader efter matcher;
  • -u- visa endast det antal rader som krävs efter skillnaderna;
  • -y- utdata i två kolumner;
  • -e- utdata i ed-format av skriptet;
  • -n- utdata i RCS-format;
  • -a- jämför filer som text, även om de inte är text;
  • -t- ersätt flikar med mellanslag i utgången;
  • -l- dela upp i sidor och lägg till personsökningsstöd;
  • -r- Rekursiv mappjämförelse;
  • -jag- ignorera fall;
  • -E- ignorera ändringar i flikar;
  • -Z- ignorera mellanslag i slutet av raden;
  • -b- ignorera mellanslag;
  • -B- ignorera tomma rader.

Dessa var de viktigaste alternativen för verktyget, låt oss nu titta på hur man jämför Linux-filer. I utmatningen av verktyget, förutom att direkt visa ändringar, visar det en rad där det anges på vilken rad och vad som gjordes. För detta används följande symboler:

  • a- Lagt till;
  • d- tog bort;
  • c- ändrats.

Dessutom kommer linjer som skiljer sig att indikeras med symbolen<, а те, которые совпадают - символом >.

Här är innehållet i våra testfiler:

Låt oss nu göra en diff-filjämförelse:

diff fil1 fil2

Som ett resultat får vi raden: 2,3c2,4. Det betyder att rad 2 och 3 har ändrats. Du kan använda alternativ för att ignorera skiftläge:

diff -i fil1 fil2

Det kan avslutas i två kolumner:

diff -y fil1 fil2

Och med alternativet -u kan du skapa en patch, som sedan kan appliceras på samma fil av en annan användare:

diff -u fil1 fil2

För att bearbeta flera filer i en mapp är det bekvämt att använda alternativet -r:

diff -r ~ / tmp1 ~ / tmp2

För enkelhetens skull kan du omdirigera verktygsutgången direkt till en fil:

diff -u fil1 fil2> fil.patch

Som du kan se är allt väldigt enkelt. Men inte särskilt bekvämt. Det är trevligare att använda grafiska verktyg.

Jämföra Linux-filer med GUI

Det finns några bra verktyg för att jämföra filer på linux i ett GUI. Du kan enkelt ta reda på hur du använder dem. Låt oss ta en titt på några av dem:

1. Kompare

Kompare är ett grafiskt diff-verktyg som låter dig hitta skillnader i filer samt kombinera dem. Den är skriven i Qt och designad främst för KDE. Här är dess huvudfunktioner:

  • Stöd för flera diff-format;
  • Stöd jämförelse av linux-filer och kataloger;
  • Stöd för visning av diff-filer;
  • Anpassningsbart gränssnitt;
  • Skapa och applicera patchar på filer.

2. DiffMerge

DiffMerge är en plattformsoberoende mjukvara för filjämförelse och sammanslagning. Låter dig jämföra två eller tre filer. On-the-fly linjeredigering stöds.

Egenskaper:

  • Stöd för att jämföra kataloger;
  • Integration med filvisare;
  • Anpassningsbar.

3. Meld

Det är ett enkelt verktyg för att jämföra och slå samman filer. Det låter dig jämföra filer, kataloger och utföra versionskontrollfunktioner. Programmet skapades för utvecklare och har följande funktioner:

  • Jämförelse av två och tre filer;
  • Använda anpassade typer och ord;
  • Automatiskt sammanfogningsläge och åtgärder med textsidor;
  • Stöd för Git, Mercurial, Subversion, Bazar och mer.

4. Diffus

Diffuse är ett annat populärt och ganska enkelt verktyg för att jämföra och slå samman filer. Det är skrivet i Python. Två huvudfunktioner stöds - filjämförelse och versionskontroll. Du kan redigera filer medan du tittar. Huvud funktioner:

  • Syntaxmarkering;
  • Kortkommandon för enkel navigering;
  • Obegränsat stöd för ångra;
  • Unicode-stöd;
  • Stöder Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK och Monotone.

5.XXdiff

XXdiff är ett gratis och mycket kraftfullt filjämförelse- och sammanslagningsverktyg. Men programmet har flera nackdelar. Detta är bristen på Unicode-stöd och filredigering.

Egenskaper:

  • Ytlig eller rekursiv jämförelse av en eller två filer och kataloger;
  • Att lyfta fram skillnader;
  • Interaktiv förening;
  • Stöd för externa jämförelseverktyg som GNU Diff, SIG Diff, Cleareddiff och mer;
  • Utvidgning av skript;
  • Anpassningsbarhet.

6.KDiff3

KDiff3 är ett annat bra, gratis filjämförelseverktyg för KDE:s skrivbordsmiljö. Den ingår i KDevelop-programsviten och körs på alla plattformar, inklusive Windows och MacOS. Det är möjligt att jämföra två linux-filer för två eller tre, eller till och med jämföra kataloger. Här är huvudfunktionerna:

  • Visar skillnader rad för rad och tecken för tecken;
  • Stöd för automatisk sammanfogning;
  • Hantera sammanslagningskonflikter;
  • Unicode-stöd;
  • Visar skillnader;
  • Stöd för manuell justering.

Slutsatser

I den här artikeln tittade vi på hur man jämför linux-filer med terminalen, hur man skapar patchar och gjorde också en kort översikt över de bästa grafiska verktygen för att jämföra filer. Vilka jämförelseverktyg använder du? Skriv i kommentarerna!

Ibland blir det nödvändigt att jämföra flera filer med varandra. Detta kan vara användbart när man analyserar skillnaden mellan flera versioner av en konfigurationsfil, eller helt enkelt för att jämföra olika filer. I Linux finns det flera verktyg för detta, både för att arbeta genom terminalen och i det grafiska gränssnittet.

I den här artikeln kommer vi att ta en titt på hur Linux-filjämförelse utförs. Låt oss ta en titt på de mest användbara metoderna, både för terminalen och i grafiskt läge. Låt oss först titta på hur man jämför en linux-fil med hjälp av diff-verktyget.

  • Jämföra diff-filer

    Diff linux-verktyget är ett program som körs i konsolläge. Dess syntax är mycket enkel. Ring verktyget, överför de nödvändiga filerna och ställ även in alternativ om det behövs:

    $ diff alternativ fil1 fil2

    Mer än två filer kan överföras vid behov. Innan vi går vidare till exempel, låt oss ta en titt på verktygsalternativen:

    • -q- visa endast skillnader mellan filer;
    • -s- visa endast matchande delar;
    • -Med- visa erforderligt antal rader efter matcher;
    • -u- visa endast det antal rader som krävs efter skillnaderna;
    • -y- utdata i två kolumner;
    • -e- utdata i ed-format av skriptet;
    • -n- utdata i RCS-format;
    • -a- jämför filer som text, även om de inte är text;
    • -t- ersätt flikar med mellanslag i utgången;
    • -l- dela upp i sidor och lägg till personsökningsstöd;
    • -r- Rekursiv mappjämförelse;
    • -jag- ignorera fall;
    • -E- ignorera ändringar i flikar;
    • -Z- ignorera mellanslag i slutet av raden;
    • -b- ignorera mellanslag;
    • -B- ignorera tomma rader.

    Dessa var de viktigaste alternativen för verktyget, låt oss nu titta på hur man jämför Linux-filer. I utmatningen av verktyget, förutom att direkt visa ändringar, visar det en rad där det anges på vilken rad och vad som gjordes. För detta används följande symboler:

    • a- Lagt till;
    • d- tog bort;
    • c- ändrats.

    Dessutom kommer linjer som skiljer sig att indikeras med symbolen<, а те, которые совпадают - символом >.

    Här är innehållet i våra testfiler:

    Låt oss nu göra en diff-filjämförelse:
    $ diff fil1 fil2

    Som ett resultat får vi raden: 2,3c2,4. Det betyder att rad 2 och 3 har ändrats. Du kan använda alternativ för att ignorera skiftläge:
    $ diff -i fil1 fil2

    Det kan avslutas i två kolumner:
    $ diff -y fil1 fil2

    Och med alternativet -u kan du skapa en patch, som sedan kan appliceras på samma fil av en annan användare:
    $ diff -u fil1 fil2

    För att bearbeta flera filer i en mapp är det bekvämt att använda alternativet -r:
    $ diff -r ~ / tmp1 ~ / tmp2

    För enkelhetens skull kan du omdirigera verktygsutgången direkt till en fil:
    $ diff -u fil1 fil2> fil.patch

    Som du kan se är allt väldigt enkelt. Men inte särskilt bekvämt. Det är trevligare att använda grafiska verktyg.

    Jämföra Linux-filer med GUI

    Det finns några bra verktyg för att jämföra filer på linux i ett GUI. Du kan enkelt ta reda på hur du använder dem. Låt oss ta en titt på några av dem:

    1. Kompare

    Kompare är ett grafiskt diff-verktyg som låter dig hitta skillnader i filer samt kombinera dem. Den är skriven i Qt och designad främst för KDE. Här är dess huvudfunktioner:

  • Stöd för flera diff-format;
  • Stöd jämförelse av linux-filer och kataloger;
  • Stöd för visning av diff-filer;
  • Anpassningsbart gränssnitt;
  • Skapa och applicera patchar på filer.

2. DiffMerge

DiffMerge är en plattformsoberoende mjukvara för filjämförelse och sammanslagning. Låter dig jämföra två eller tre filer. On-the-fly linjeredigering stöds.

Egenskaper:

  • Stöd för att jämföra kataloger;
  • Integration med filvisare;
  • Anpassningsbar.

3. Meld

Det är ett enkelt verktyg för att jämföra och slå samman filer. Det låter dig jämföra filer, kataloger och utföra versionskontrollfunktioner. Programmet skapades för utvecklare och har följande funktioner:

  • Jämförelse av två och tre filer;
  • Använda anpassade typer och ord;
  • Automatiskt sammanfogningsläge och åtgärder med textsidor;
  • Stöd för Git, Mercurial, Subversion, Bazar och mer.

4. Diffus

Diffuse är ett annat populärt och ganska enkelt verktyg för att jämföra och slå samman filer. Det är skrivet i Python. Två huvudfunktioner stöds - filjämförelse och versionskontroll. Du kan redigera filer medan du tittar. Huvud funktioner:

  • Syntaxmarkering;
  • Kortkommandon för enkel navigering;
  • Obegränsat stöd för ångra;
  • Unicode-stöd;
  • Stöder Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK och Monotone.

5.XXdiff

XXdiff är ett gratis och mycket kraftfullt filjämförelse- och sammanslagningsverktyg. Men programmet har flera nackdelar. Detta är bristen på Unicode-stöd och filredigering.

Egenskaper:

  • Ytlig eller rekursiv jämförelse av en eller två filer och kataloger;
  • Att lyfta fram skillnader;
  • Interaktiv förening;
  • Stöd för externa jämförelseverktyg som GNU Diff, SIG Diff, Cleareddiff och mer;
  • Utvidgning av skript;
  • Anpassningsbarhet.

6.KDiff3

KDiff3 är ett annat bra, gratis filjämförelseverktyg för KDE:s skrivbordsmiljö. Den ingår i KDevelop-programsviten och körs på alla plattformar, inklusive Windows och MacOS. Det är möjligt att jämföra två linux-filer för två eller tre, eller till och med jämföra kataloger. Här är huvudfunktionerna:

  • Visar skillnader rad för rad och tecken för tecken;
  • Stöd för automatisk sammanfogning;
  • Hantera sammanslagningskonflikter;
  • Unicode-stöd;
  • Visar skillnader;
  • Stöd för manuell justering.
Dela detta