Portál AbcLinuxu, 11. května 2025 10:25

Dotaz: Jak vypsat rozdílné názvy položek

7.2.2023 14:12 Kuba
Jak vypsat rozdílné názvy položek
Přečteno: 370×
Odpovědět | Admin
Dobrý den, poradí někdo začátečníkovy jak můžu v příkazové řádce porovnat dva adresáře (které mají vnořené další adresáře a souboru) a vypsat pouze rozdílné soubory a složky? Děkuji za pomoc.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.2.2023 14:26 X
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
Odpovědět | | Sbalit | Link | Blokovat | Admin
man diff
7.2.2023 15:14 Kuba
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
Díky, třeba si tu otázku někdo přečte pořádně a odpoví naco jsem se opravdu zeptal.
xxxs avatar 7.2.2023 15:17 xxxs | skóre: 25 | blog: vetvicky
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
odpoved bola spravna. riesi sa to pomocou programu diff. man diff, alebo info diff ti napovie ako na to.
7.2.2023 15:25 Kuba
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
Tak asi je více příkazů diff, ten co jsem našel já se používá k něčemu zcela jinému.



diff znamená rozdíl. Tento příkaz se používá k zobrazení rozdílů v souborech porovnáním souborů řádek po řádku. Na rozdíl od svých kolegů, cmp a comm, nám říká, které řádky v jednom souboru mají být změněny, aby byly oba soubory identické.

Důležité je mít na paměti, že diff používá určité speciální symboly a instrukce, které jsou nutné k tomu, aby byly dva soubory identické. Řekne vám pokyny, jak změnit první soubor tak, aby odpovídal druhému souboru.
            
7.2.2023 15:29 z_sk | skóre: 34 | blog: analyzy
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
find Ti vypíše pathe k obsahu priečinkov a tie potom napr. analyzuješ cez diff. Ďalej môžeš analyzovať aj cez sort+uniq.
debian.plus@protonmail.com
xxxs avatar 7.2.2023 15:40 xxxs | skóre: 25 | blog: vetvicky
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
1. adresar

/home/anna/kuba1 obsahuje:kuba3, kuba3 (kópia), kuba3 (ďalšia kópia)

2. adresar

/home/anna/kuba2 obsahuje:kuba3, kuba3 (ďalšia kópia)

zadam do terminalu: diff /home/anna/kuba1 /home/anna/kuba2

vylezie:

Common subdirectories: /home/anna/kuba1/kuba3 and /home/anna/kuba2/kuba3

Common subdirectories: /home/anna/kuba1/kuba3 (ďalšia kópia) and /home/anna/kuba2/kuba3 (ďalšia kópia)

Only in /home/anna/kuba1: kuba3 (kópia)

k3dAR avatar 10.2.2023 11:53 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
diff ma (prave v tom "man diff" jak psal X):
man diff | grep --no-group-separator -A1 '\-[r,q],'
       -q, --brief
              výstup pouze při rozdílných souborech
       -r, --recursive
              rekurzivně porovná všechny nalezené podadresáře
reseni s pouzitim techto prepinacu ti dole psal Y :-)
porad nemam telo, ale uz mam hlavu... nobody
7.2.2023 15:54 PetebLazar | skóre: 34 | blog: l_eonardovo_odhodlani
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pozn. To, ze se soubor jmenuje stejne a ma shodne atributy negarantuje, ze ma i shodny obsah.

Pomoci find si vytvorit seznam souboru/adresaru pro kazdy ze srovnavanych adresaru s ./cesta/soubor a ke kazdemu souboru v seznamu vytvorit checksum (napr. SHA512) a tento pripojit za ./cesta/soubor. Tyto seznamy abecedne setridit podle ./cesta/soubor a nasledne je porovnat pomoci diff?

Pozor, pokud je clovek extra extra smolar muze mu i pri rozdilnych souborech vyjit shodny checksum. ;-)
9.2.2023 09:16 Y
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/bash

# Nastavte název prvního adresáře
dir1=

# Nastavte název druhého adresáře
dir2=

# Porovnání obsahu obou adresářů
diff -qr "$dir1" "$dir2" | grep "differ"

k3dAR avatar 10.2.2023 11:45 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
BTW: grepnutim "differ" jednak pocitas s EN a zaroven vyloucis pripadne "existuje pouze v jednom z tech adresaru"
pokud je videt nechce, tak ok, ale universal pro jakoukoliv lokalizaci pustit diff z promenou co vypne lokalizaci, takze vystup bude v EN
# Porovnání obsahu obou adresářů
LANG=C diff -qr "$dir1" "$dir2" | grep "differ"
pokud by ho zajimalo i to dostupne pouze v jednom:
# Porovnání obsahu obou adresářů
diff -qr "$dir1" "$dir2"
porad nemam telo, ale uz mam hlavu... nobody
10.2.2023 09:29 MM
Rozbalit Rozbalit vše Re: Jak vypsat rozdílné názvy položek
Odpovědět | | Sbalit | Link | Blokovat | Admin
taky existuje nástroj meld, který porovnává adresáře i soubory.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.