Diff

diff
VývojářBellovy laboratoře a Douglas McIlroy
Typ softwarupočítačový program, standardní UNIXová utilita či příkaz a file comparison
Některá data mohou pocházet z datové položky.

diff je v informatice nástroj, který se používá pro zjištění rozdílů mezi dvěma textovými soubory tak, že vypíše řádky, kterými se zadané soubory liší. Nalezneme jej v Unix a operačních systémech unixového typu. Nástroj je využíván zejména programátory, kteří tak mohou snadno prohlédnout změny, ke kterým ve zdrojovém kódu programu došlo. Příbuzným nástrojem je diff3, který porovnává tři soubory. Výstup programu diff označujeme jako patch (záplata) a lze ho použít k aplikaci na původní soubor pomocí stejnojmenného nástroje patch.

Popis činnosti

Nástroj diff slouží k zjištění rozdílů mezi dvěma soubory, které jsou zadány na vstupu (starýnový). Na rozdíl od nástroje cmp (který jen ohlásí, zda jsou soubory stejné nebo rozdílné) je výstupem nástroje diff seznam změn, ke kterým došlo (přidaný řádek, smazaný řádek, změněný řádek). Změny jsou obvykle doplněny také okolními (nezměněnými) řádky textu (tzv. kontext), který slouží k lepšímu pochopení změn a pro kontrolu umístění popsaných změn.

Při posuzování změn je možné ignorovat změny založené na přidání nebo odebrání prázdných řádků, bílých znaků (mezerytabulátory), ale i určitých řádků, takže i pro různé soubory může být nástrojem diff zjištěno, že se neliší.

Výstupem programu je seznam změn, který je zapsán v jednom z dostupných formátů (viz dále). Tento výstup označujeme pojmem patch (záplata). Máme-li k dispozici původní verzi souboru (který byl použit při porovnání jako starý – viz výše) a záplatu, můžeme pomocí stejnojmenného nástroje patch na něj aplikovat změny a získat tak novou verzi souboru (viz nový výše). Nástroj patch pracuje inverzně vůči nástroji diff. Programátoři proto nemusí při spolupráci posílat neustále celé změněné soubory, ale stačí poslat jen seznam změn k poslední všeobecně známé verzi, tj. záplatu (patch).

diff [volby] stary_soubor novy_soubor

Příkaz diff porovnává obsah souboru stary_soubor s obsahem souboru novy_soubor. Je-li místo jména souboru použit znak „-“, čte se místo něj standardní vstup. Pokud je jeden z argumentů adresář a druhý je soubor, potom příkaz porovnává obsah uvedeného souboru se stejnojmenným souborem v uvedeném adresáři. V tomto případě se soubor nesmí nahradit znakem minus. Jsou-li oba argumenty jména adresářů, potom se porovnávají obsahy souborů v uvedených adresářích v abecedním pořadí. Potřebujeme-li adresáře prohledávat rekurzivně (tj. včetně podadresářů), zadáme volbu -r (nebo --recursive). Příkaz neporovnává obsahy adresářů jakožto souborů s adresářovou informací.

Porovnání binárních a textových souborů

Příkaz diff je primárně určen na porovnávání textových souborů po řádcích. Na začátku porovnávání se však vždy zjišťuje, o jaký typ souboru jde. Pokud se v prvních několika KiB souboru nenajde jediný null znak, potom se soubor považuje za textový. V opačném případě jde o binární soubor, diff je porovná bajt po bajtu a pouze oznámí, že se soubory liší (nebo neoznámí nic, potom jsou soubory shodné). Příkaz můžeme volbou -a nebo --text násilně vnutit, že jde o textové soubory. Diff potom tyto soubory bude porovnávat textově. Naopak zadáním volby --brief spustíme binární porovnávání opět bez ohledu na skutečný typ souboru. K dispozici je rovněž volba --binary, která však v systémech vyhovujících normám POSIX (např. Linux) nemá význam. Význam má tam, kde se řádky ukončují dvojicí znaků CR, LF. Normálně se v takovém systému znak CR na vstupu vynechává a na výstupu se přidává. Po uvedení --binary se CR na vstupu přečte jako každý jiný znak a na výstupu se nepřidává.

Formáty výstupů

Příkaz diff umí údaje předávat na výstup v několika formátech. Normální (implicitní) je takový, ve kterém se vypisují pouze ty řádky, které jsou v jednom či druhém souboru navíc nebo se liší. Tento formát se však pro vytváření záplat běžně nepoužívá.

Obecný formát normálního výpisu je následující:

popis změny
<řádek z prvního souboru
<řádek z prvního souboru…
---
>řádek ze druhého souboru
>řádek ze druhého souboru…

Možné popisy změny jsou tři. Obsahují vždy číslo řádku nebo interval čísel řádků (čísla se v intervalu oddělují čárkou) z prvního souboru (vztahuje se k pořadí jmen souborů uvedených na příkazovém řádku při spuštění diff), dále pak identifikátor změny (a, c, d) a číslo řádku nebo interval řádků ze druhého souboru.

LaR
Ve druhém souboru jsou navíc řádky R patřící za řádek L prvního souboru. Např. 8a12, 15 znamená, že ve druhém souboru jsou navíc řádky 12–15 a patří za řádek 8 v prvním souboru.
FcT
Řádky F z prvního souboru byly změněny. Ve druhém souboru jsou jim odpovídající řádky T. Např. popis 5,7c8,10 znamená, že se liší řádky 5–7 v prvním souboru a jim odpovídající jsou řádky 8–10 ve druhém souboru.
RdL
Ve druhém souboru chybí řádky R z prvního souboru. Tyto řádky by patřily za řádek L druhého souboru. Např. 5,7d3 znamená, že za řádkem 3 ve druhém souboru chybějí řádky 5–7 prvního souboru.

Další možný výstupní formát je kontextový. Zde diff změny zobrazí spolu s okolními řádky. Uživatel tak lépe pochopí význam změn. Kontextový výstupní formát zapínáme jednou z voleb -c, -C--context. Dvěma posledním volbám zadáváme jako parametr počet řádků vypisovaného okolí. Nástroj patch typicky vyžaduje pro kontrolu aplikovaných změn dva řádky okolí.

Řádky obsahující okolí začínají dvěma mezerami. Rozdílné řádky obsahují v prvním sloupci jeden z následujících znaků a ve druhém sloupci mezeru:

!
Řádek je ze skupiny jednoho nebo více změněných řádků. Ve výpise jsou řádky označené „!“ jak pro první soubor, tak i pro druhý soubor.
+
Řádky navíc ve druhém souboru nemají svůj obraz v prvním souboru.
-
Řádky navíc v prvním souboru nemají svůj obraz ve druhém souboru.

Pokud jsou změny pouze typu + a -, potom se okolí v opačném souboru nevypisuje.

Dalším typem výstupního formátu je unifikovaný (sjednocený) kontextový formát. Jeho výhodou proti kontextovému způsobu výpisu je odstranění nadbytečných opakujících se řádků. Výpis v tomto tvaru se získá volbami -u, -U nebo -unified.

Související články

Read other articles:

Katedral ManhattanKatedral Santa AnnaKatedral Manhattan40°43′55.99″N 73°59′20.81″W / 40.7322194°N 73.9891139°W / 40.7322194; -73.9891139Koordinat: 40°43′55.99″N 73°59′20.81″W / 40.7322194°N 73.9891139°W / 40.7322194; -73.9891139LokasiKota New York:110 E. 12th St., Manhattan167 N. 6th St., BrooklynNegaraAmerika SerikatDenominasiGereja Katolik RomaSejarahDidirikan1983ArsitekturStatusKatedralStatus fungsionalAktifDitutup2005...

 

Christian GoldbachLahir18 Maret 1690Königsberg, Brandenburg-PrussiaMeninggal20 November 1764 (usia 74)Moskow, Kerajaan RusiaKebangsaanJermanDikenal atasKonjektur GoldbachKarier ilmiahBidangMatematika dan Hukum Tanda tangan Christian Goldbach (18 Maret 1690 – 20 November 1764) adalah seorang matematikawan Jerman yang juga mempelajari ilmu hukum. Dia terkenal dengan Konjektur Goldbach. Biografi Lahir di kota Königsberg (sekarang Kaliningrad) ibu kota Prussia, bagian dari Bran...

 

Beechcraft T-34 Mentor adalah pesawat latih militer ber-baling-baling, bermesin tunggal, berasal dari Model 35 Beechcraft Bonanza. Versi sebelumnya dari T-34, yang berasal dari sekitar 1940-an sampai 1950-an, adalah bermesin piston. Ini akhirnya digantikan oleh upgrade T-34C Turbo-Mentor tersebut, didukung oleh mesin turboprop. T-34 masih beroperasi dalam lebih dari enam dekade setelah pertama kali dirancang. T-34 merupakan gagasan Walter Beech, yang dikembangkan sebagai usaha swasta Beechcr...

Football clubSporting Clube da PraiaFull nameSporting Clube da PraiaNickname(s)Leões (Lions)Verde-e-Amarelos (Green'n'Yellow)Lion di Kapital(Lion of the Capital,Portuguese: Leão de Capital)Founded2 December 1923GroundEstádio da Várzea,Praia, Cape VerdeCapacity8,000ChairmanCarlos Daniel CaetanoManagerLitoLeagueSantiago Island League (South)Cape Verdean Football Championships2017–1820181st, Champions2nd and eliminatedWebsiteClub website Home colours Away colours Current season Sporting C...

 

Pour les articles homonymes, voir Lavis (homonymie). Lavis Administration Pays Italie Région Trentin-Haut-Adige  Province Trentin   Code postal 38015 Code ISTAT 022103 Code cadastral E500 Préfixe tel. 0461 Démographie Gentilé lavisani Population 9 156 hab. (31-10-2021) Densité 763 hab./km2 Géographie Coordonnées 46° 08′ 00″ nord, 11° 07′ 00″ est Altitude Min. 235 mMax. 235 m Superficie 1 200 ha =...

 

† Человек прямоходящий Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:Синапсиды�...

Valeria SorokinaInformasi pribadiNama lahirВалерия Михайловна СорокинаValeria Mihailovna SorokinaKebangsaanRusiaLahir29 Maret 1984 (umur 40)Reshetikha, Nizhny Novgorod, USSRTinggi172 m (564 ft 4 in)Ganda putri dan campuranPeringkat tertinggi4 (WD) 6 Januari 201111 (XD) 29 Maret 2012 Rekam medali Putri bulu tangkis Mewakili  Rusia Olympic Games 2012 London Women's doubles European Championships 2010 Manchester Women's doubles 2008 Herning Women...

 

National association football team This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Argentina national under-17 football team – news · newspapers · books · scholar · JSTOR (April 2023) (Learn how and when to remove this template message) Argentina Under-17Nickname(s)Albicelestes (White and Sky Blue)Associatio...

 

Cooking school in Hong Kong focusing on Chinese cuisine This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Chinese Culinary Institute – news · newspapers · books · scholar · JSTOR (July 2019) (Learn how and when to remove this template message) Chinese Culinary Institutethe entrance of Chinese Culinary Institut...

Antique store in New York A La Vieille RussieInterior of the store in 2008Coordinates40°45′51.55″N 73°58′22.11″W / 40.7643194°N 73.9728083°W / 40.7643194; -73.9728083 A La Vieille Russie is a New York City-based antique store specializing in European and American antique jewelry, Imperial Russian works of art, 18th-century European gold snuff boxes, and objets d’art.[1] Founded in Kiev in 1851, A La Vieille Russie later relocated to Paris around 1...

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

 

Permanent web hyperlink For permalinks in Wikipedia, see Help:Page history § Linking to a specific revision of a page and Help:Permanent link This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Permalink – news · newspapers · books · scholar · JSTOR (July 2007) (Learn how and when to remove this message) A...

Questa voce sugli argomenti film drammatici e film western è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. La via dei gigantiTitolo originaleUnion Pacific Lingua originaleinglese Paese di produzioneStati Uniti d'America Anno1939 Durata135 min Dati tecniciB/Nrapporto: 1,37:1 Generedrammatico, western RegiaCecil B. DeMille Arthur Rosson (regista 2a unità)James P. Hogan (regista 3a unità) SoggettoEr...

 

Contea di Palo PintoconteaContea di Palo Pinto – VedutaTribunale della contea LocalizzazioneStato Stati Uniti Stato federato Texas AmministrazioneCapoluogoPalo Pinto Data di istituzione1856 TerritorioCoordinatedel capoluogo32°45′11.45″N 98°18′46.87″W / 32.75318°N 98.31302°W32.75318; -98.31302 (Contea di Palo Pinto)Coordinate: 32°45′11.45″N 98°18′46.87″W / 32.75318°N 98.31302°W32.75318; -98.31302 (Contea di Palo Pinto) Al...

 

Composition for piano by Frederic Chopin Ballade No. 4Ballade by Frédéric ChopinAutograph manuscript, Bodleian Library, 1842KeyF minorOpus52Composed1842Published1843 The Ballade No. 4 in F minor, Op. 52 is a ballade for solo piano by Frédéric Chopin, completed in 1842 in Paris.[1] It is commonly considered one of the masterpieces of 19th-century piano music.[2] Of the four ballades, it is considered by many pianists to be the most difficult, both technically and musically....

US Army strategy concept (1982 – late 1990s) For the video game, see Wargame: AirLand Battle. Part of a series onWarOutline History Prehistoric Ancient Post-classical castles Early modern pike and shot napoleonic Late modern industrial fourth-gen Military Organization Command and control Defense ministry Army Navy Air force Marines Coast guard Space force Reserves Regular / Irregular Ranks Specialties: Staff Engineers Intelligence Reconnaissance Medical Military police Land units: Infantry ...

 

Civil and human rights organization This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Young Lords – news · newspapers · books · scholar · JSTOR (February 2008) (Learn how and when to remove this message) Young Lords AbbreviationYLO/YLPFounderJose Cha-Cha JimenezFoundedSeptember 23, 1968 (1968-09...

 

Diary of a Future PresidentGenreKomediPembuatIlana PeñaPemeran Tess Romero Selenis Leyva Charlie Bushnell Michael Weaver Lagu pembukaMy Journey: Lo Puedo Lograr by Emily Estefan[1]MusikJoey NewmanNegara asalAmerika SerikatBahasa asliInggrisJmlh. musim1Jmlh. episode10 (daftar episode)ProduksiProduser eksekutif Robin Shorr Ilana Peña Gina Rodriguez Emily Gipson Brad Silberling Lewis Abel Lokasi produksiLos Angeles[2]SinematografiAlison KellyPenyunting Kyla Plewes Keenan Hiett...

Method to provide a measured amount of ink This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article may need to be rewritten to comply with Wikipedia's quality standards. You can help. The talk page may contain suggestions. (October 2019) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced materi...

 

This biography of a living person relies too much on references to primary sources. Please help by adding secondary or tertiary sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately, especially if potentially libelous or harmful.Find sources: Stephen Lindsay – news · newspapers · books · scholar · JSTOR (February 2017) (Learn how and when to remove this message) D. Stephen Lindsay is a cognit...