Linux-kommandon

diff Kommandoexempel i Linux

diff Kommandoexempel i Linux
Diff-kommandot är ett analys- eller informativt kommando som skriver ut skillnader mellan filer, analyserar dem rad för rad eller kataloger rekursivt samtidigt som användaren informeras om vilka ändringar som är nödvändiga för att göra filer lika, denna punkt är viktig för att förstå diff-utdata. Denna handledning fokuserar på diff-kommandot.

Innan du börjar skapar du två filer med vilken textredigerare som helst (nano används i den här självstudien) med samma innehåll:

# nano diffsample1

Insida pasta:

 LinuxHint publicerar det bästa innehållet för dig 

Tryck CTRL+X och Y för att spara och avsluta.

Skapa en andra fil som heter diffsample2 med samma innehåll:

# nano diffsample2

Notera: var uppmärksam på mellanslag och flikar, filer måste vara 100% lika.

Tryck CTRL+X och Y för att spara och avsluta.

# diff diffsample1 diffsample2

Som du kan se finns det ingen utdata, du behöver inte göra något för att göra filer lika eftersom de redan är lika.

Låt oss nu redigera filen diffsample2 för att göra ändringar:

# nano diffsample2

Låt oss sedan ersätta ordet "innehåll" för "tips":

Tryck CTRL+X och Y för att spara och avsluta.

Kör nu:

# diff diffsample1 diffsample2

Låter oss se utdata:

Utgången ovan, "3c3" betyder "Rad 3 i första filen av bör ersättas för rad 3 i andra fil". Den vänliga delen av produktionen är att den visar oss vilken text som måste ändras (“innehåll för dig" för "tips för dig”)

Detta visar oss att referensen för kommandot diff inte är den första filen utan den andra, det är därför den första filen tredje raden (den första 3) måste ändras (C) som den tredje raden i den andra filen (andra 3).

Kommandot diff kan visa 3 tecken:

c: denna karaktär instruerar en Förändra måste göras.
a: denna karaktär instruerar något måste vara Lagt till.
d: denna karaktär instruerar något måste vara raderade.

De första siffrorna före ett tecken tillhör den första filen, medan siffrorna efter tecken tillhör den andra filen.

Symbolen < belongs to the first file and the symbol > till den andra filen som används som referens.

Låt oss invertera filernas ordning istället för att köra

# diff diffsample1 diffsample2

springa:

# diff diffsample2 diffsample1

Du kan se hur beställningen inverterades och nu används diffsample1-filen som referens, och den instruerar oss att ändra "tips för dig" för "innehåll för dig", detta var den tidigare utgången:

Låt oss nu redigera filen diffsample1 så här:

Ta bort alla rader, förutom den första raden i filen diffsample1. Kör sedan:

# diff diffsample2 diffsample1

Eftersom vi använde filen diffsample1 som referens, som du kan se, måste vi radera (för att göra filen diffsample2 exakt lika)d) rad två och tre (2,3) som i den första filen och första raderna (1) kommer att vara lika.

Nu kan vi invertera ordningen och istället för att köra “# diff diffsample2 diffsample1 ” springa:

# diff diffsample1 diffsample2

Som du kan se, medan föregående exempel instruerade oss att ta bort, instruerar den oss att lägga till (a) rad 2 och 3 efter den första filen första raden (1).

Låt oss nu arbeta med skiftlägeskänsliga egenskaper hos detta program.

Redigera filen diffsample2 som:

Och redigera filen diffsample1 som:

Den enda skillnaden är stora bokstäver i filen diffsample2. Låt oss nu jämföra det med diff igen:

# diff diffsample1 diffsample2

Som du kan se skillnader i skillnader, stora bokstäver, undviker vi att detektera stora bokstäver om vi inte är intresserade av skiftläget genom att lägga -i alternativ:

# diff -i diffsample1 diffsample2

Inga skillnader hittades, ärendet upptäcktes inaktiverat.

Låt oss nu ändra utdataformatet genom att lägga till alternativet -u används för att skriva ut enhetliga utgångar:

Dessutom, till datum och tid visas utdata med a - och + symbol vad som ska tas bort och vad som ska läggas till för att göra filer lika.

I början av den här artikeln sa jag att mellanslag och flikar måste vara lika i båda filerna, eftersom de också detekteras av kommandot diff, om vi vill att kommandot diff ska ignorera mellanslag och flikar måste vi använda -w alternativ.

Öppna filen diffsample2 och lägg till mellanslag och flikar:

Som du ser lade jag till ett par flikar efter "det bästa" i andra raden och också mellanslag i alla rader, stäng, spara filen och kör:

# diff diffsample1 diffsample2

Som du kan se hittades skillnader, förutom stora bokstäver. Låt oss nu tillämpa alternativet  -w att instruera diff att ignorera tomma blanksteg:

Som du ser trots att tabellskillnaden bara hittas som skillnad med stora bokstäver.
Låt oss nu lägga till alternativet -i igen:

#diff -wi diffsample2 diffsample1

Kommandot diff har dussintals tillgängliga alternativ att använda för att ignorera, ändra utdata, diskriminera kolumner när de är närvarande, etc. Du kan få ytterligare information om dessa alternativ med man-kommandot, eller på http: // man7.org / linux / man-pages / man1 / diff.1.html. Jag hoppas att du tyckte att den här artikeln med olika kommandoexempel i Linux var användbar. Fortsätt följa LinuxHint för fler tips och uppdateringar om Linux och nätverk.

Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...
Mus Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Markören hoppar eller rör sig slumpmässigt när du skriver in Windows 10
Om du upptäcker att muspekaren hoppar eller rör sig på egen hand, automatiskt, slumpmässigt när du skriver in Windows-bärbar dator eller dator, kan nå...
Mus Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Så här vänder du mus- och styrplattans rullningsriktning i Windows 10
Mus och Pekplattas gör inte bara datoranvändning lättare men effektivare och mindre tidskrävande. Vi kan inte föreställa oss ett liv utan dessa enhete...