Příklady příkazů Linux sdiff pro nováčky v Linuxu
V jednom z našich dřívějších článků jsme vysvětlili 9 nejlepších nástrojů pro porovnávání a rozdíly souborů (Diff) pro systémy Linux. Uvedli jsme směs nástrojů příkazového řádku a GUI pro porovnávání a hledání rozdílů mezi soubory, z nichž každý má určité pozoruhodné funkce. Další užitečný nástroj pro porovnání pro Linux se nazývá sdiff.
Přečtěte si také: Jak najít rozdíl mezi dvěma adresáři pomocí nástrojů Diff and Meld
sdiff je jednoduchý nástroj příkazového řádku pro zobrazení rozdílů mezi dvěma soubory a interaktivní sloučení. Snadno se používá a přichází s jednoduchými možnostmi použití, jak je vysvětleno níže.
Syntaxe pro použití sdiff je následující.
sdiff option... file1 file2
Zobrazit rozdíl mezi dvěma soubory v Linuxu
1. Nejjednodušší způsob, jak spustit sdiff, je poskytnout dva názvy souborů, které se pokoušíte porovnat. Ukáže sloučený rozdíl vedle sebe, jak je znázorněno na následujícím snímku obrazovky.
cal >cal.txt
df -h >du.txt
sdiff du.txt cal.txt
Zacházet se všemi soubory jako s textovými soubory
2. Chcete-li všechny soubory považovat za text a porovnat je řádek po řádku, ať už se jedná o textové soubory nebo ne, použijte příznak -a
.
sdiff -a du.txt cal.txt
Filesystem Size Used Avail Use% Mounted on | April 2018
udev 3.9G 0 3.9G 0% /dev | Su Mo Tu We Th Fr Sa
tmpfs 788M 9.7M 779M 2% /run | 1 2 3 4 5 6 7
/dev/sda10 324G 265G 43G 87% / | 8 9 10 11 12 13 14
tmpfs 3.9G 274M 3.6G 7% /dev/shm | 15 16 17 18 19 20 21
tmpfs 5.0M 4.0K 5.0M 1% /run/lock | 22 23 24 25 26 27 28
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup | 29 30
/dev/loop2 82M 82M 0 100% /snap/core/4206 |
/dev/loop4 181M 181M 0 100% /snap/vlc/190 <
/dev/loop1 87M 87M 0 100% /snap/core/4407 <
/dev/loop0 189M 189M 0 100% /snap/vlc/158 <
/dev/loop3 83M 83M 0 100% /snap/core/4327 <
cgmfs 100K 0 100K 0% /run/cgmanager/fs <
tmpfs 788M 40K 788M 1% /run/user/1000 <
Ignorujte karty a mezery
3. Pokud máte soubory s příliš velkým množstvím mezer, můžete pomocí přepínače -W
říci sdiff, aby při porovnávání ignoroval všechna bílá místa.
sdiff -W du.txt cal.txt
4. Můžete také sdělit sdiff, aby ignoroval jakékoli prázdné místo na konci řádku pomocí volby -z
.
sdiff -z du.txt cal.txt
5. Pomocí příznaku -E
můžete navíc instruovat sdiff, aby ignoroval změny způsobené rozbalením karty.
sdiff -E du.txt cal.txt
Ignorujte případ při porovnávání rozdílu
6. Chcete-li ignorovat velká a malá písmena (kde sdiff považuje velká a malá písmena za stejná), použijte volbu -i
, jak je uvedeno na obrázku.
sdiff -i du.txt cal.txt
Ignorujte prázdné řádky při porovnávání rozdílů
7. Možnost -B
pomáhá ignorovat prázdný řádek v souborech.
sdiff -B du.txt cal.txt
Definujte počet sloupců k výstupu
8. sdiff umožňuje nastavit počet sloupců, které se mají vytisknout (výchozí je 130), pomocí -w
přepněte následovně.
sdiff -w 150 du.txt cal.txt
Rozbalte Tabulátory na Prostory
9. Chcete-li ve výstupu rozbalit tabulátory na mezery, použijte volbu -t
.
sdiff -t du.txt cal.txt
Spustit sdiff interaktivně
10. Příznak -o
mu umožňuje spouštět interaktivněji a odesílat výstup do souboru. V tomto příkazu bude výstup odeslán do souboru sdiff.txt, stiskněte Enter po zobrazení znaku %
, abyste získali interaktivní nabídku .
sdiff du.txt cal.txt -o sdiff.txt
Filesystem Size Used Avail Use% Mounted on | April 2018
udev 3.9G 0 3.9G 0% /dev | Su Mo Tu We Th Fr Sa
tmpfs 788M 9.7M 779M 2% /run | 1 2 3 4 5 6 7
/dev/sda10 324G 265G 43G 87% / | 8 9 10 11 12 13 14
tmpfs 3.9G 274M 3.6G 7% /dev/shm | 15 16 17 18 19 20 21
tmpfs 5.0M 4.0K 5.0M 1% /run/lock | 22 23 24 25 26 27 28
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup | 29 30
/dev/loop2 82M 82M 0 100% /snap/core/4206 |
/dev/loop4 181M 181M 0 100% /snap/vlc/190 <
/dev/loop1 87M 87M 0 100% /snap/core/4407 <
/dev/loop0 189M 189M 0 100% /snap/vlc/158 <
/dev/loop3 83M 83M 0 100% /snap/core/4327 <
cgmfs 100K 0 100K 0% /run/cgmanager/fs <
tmpfs 788M 40K 788M 1% /run/user/1000 <
%
ed: Edit then use both versions, each decorated with a header.
eb: Edit then use both versions.
el or e1: Edit then use the left version.
er or e2: Edit then use the right version.
e: Discard both versions then edit a new one.
l or 1: Use the left version.
r or 2: Use the right version.
s: Silently include common lines.
v: Verbosely include common lines.
q: Quit.
%
Všimněte si, že v tomto scénáři musíte mít v systému nainstalovány některé z editorů, jako je ed, než je použijete.
Vyvolat jiný program pro porovnání souborů
11. Přepínač --diff-program
umožňuje volat jiný nástroj příkazového řádku, jiný než samotný sdiff, například k porovnání souborů , můžete vyvolat program diff, jak je znázorněno.
sdiff --diff-program=diff du.txt cal.txt
Další informace najdete na manuálové stránce sdiff.
man sdiff
V tomto článku jsme se podívali na příklady nástrojů příkazového řádku sdiff pro začátečníky. Pokud máte nějaké dotazy, kontaktujte nás pomocí níže uvedeného formuláře pro komentáře.