Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Kuba 10. 03. 2011, 01:50:17

Název: Shell skript na tvorbu patchů
Přispěvatel: Kuba 10. 03. 2011, 01:50:17
Zdravím vás a snad vás nepohorším,
    rád bych požádal o pomoc někoho zběhlého v shell skriptování, docela nedávno jsem začal pracovat s
    linuxem a musím řešit následující problém: Mám za úkol vytvořit takový "patch maker" - program, který 
    porovná dva adresáře a vytvoří jeden jejich rozdílový adresář. Komplikuje mi to požadavek na přenositelnost 
    mezi různými druhy shellů a navíc mám za úkol ošetřit výskyt souboru se stejným názvem, jako má jeden 
    adresář v tom druhém porovnávaném ( /cmp1/soubor  a /cmp2/soubor/). samozřejmě po nikom nechci řešení,   
    ale byl bych vděčný za nějaké rady ("man diff" není rada, s diffem jsem toho zkoušel hodně, ale problém
    soubor vs. adresář nejspíš nevyřeší). Děkuji za každou upřímnou radu.                       
Název: Re: shell skriptík
Přispěvatel: NA 10. 03. 2011, 07:30:05
Máš na mysli něco jako sync?
Název: Re: shell skriptík
Přispěvatel: chsajarsa 10. 03. 2011, 08:55:04
adresar zjistis treba z vypisu ls -l, kde adresar ma na zacatku d. Ja bych to delal asi takhle:
1) pomoci find bych nechal vylistovat kopletni adresarvou strukturu vcetne souboru(find <prvni_adr> > adr1 && find <druhy_adr> > adr2).
2) pokud mas hledat i rozdily mezi jednotlivejma souborama, tak asi jeste budes muset pridat diff mezi tema ze stejnym nazvem nebo hashe nebo tak
3) pak ti staci uz jen sort a uniq nad souborama adr1 a adr2 a najit si ve kterem adresari jsou a jestli to je soubor nebo adresar
4) ted uz to jen vykopirovat

Samozdrejme si s tim chce jest hodne pohrat, napadlo me to z hlavy, aniz bych to zkousel, takze tam mozna bude nejaky drobny zadrhel.
Název: Re: shell skriptík
Přispěvatel: smajl 10. 03. 2011, 09:57:17
$ diff -q /etc/java-6-openjdk /etc/java-6-sun
Only in /etc/java-6-openjdk: accessibility.properties
Files /etc/java-6-openjdk/calendars.properties and /etc/java-6-sun/calendars.properties differ
Files /etc/java-6-openjdk/content-types.properties and /etc/java-6-sun/content-types.properties differ
Files /etc/java-6-openjdk/flavormap.properties and /etc/java-6-sun/flavormap.properties differ
Only in /etc/java-6-openjdk: fontconfig.bfc
Files /etc/java-6-openjdk/fontconfig.properties and /etc/java-6-sun/fontconfig.properties differ
Only in /etc/java-6-openjdk: images
Files /etc/java-6-openjdk/jvm.cfg and /etc/java-6-sun/jvm.cfg differ
Common subdirectories: /etc/java-6-openjdk/management and /etc/java-6-sun/management
Only in /etc/java-6-openjdk: psfontj2d.properties
Only in /etc/java-6-openjdk: psfont.properties.ja
Common subdirectories: /etc/java-6-openjdk/security and /etc/java-6-sun/security
Files /etc/java-6-openjdk/sound.properties and /etc/java-6-sun/sound.properties differ
Only in /etc/java-6-openjdk: swing.properties
Název: Re: shell skriptík
Přispěvatel: BruXy 10. 03. 2011, 11:27:05
Velice jednoduchy zpusob je pouzit rsync v --dry-mode kdy pouze vypise, ktere soubory se lisi a s timto seznamem pracovat dal.

Prenositelnost: napsat to v posix shellu a nepouzivat zadna frikulinska rozsireni Bashe, dashe a podobne :)
Název: Re: shell skriptík
Přispěvatel: Franta 10. 03. 2011, 13:23:14
Zdravím vás a snad vás nepohorším,
    rád bych požádal o pomoc někoho zběhlého v shell skriptování, docela nedávno jsem začal pracovat s
    linuxem a musím řešit následující problém: Mám za úkol vytvořit takový "patch maker" - program, který 
    porovná dva adresáře a vytvoří jeden jejich rozdílový adresář. Komplikuje mi to požadavek na přenositelnost 
    mezi různými druhy shellů a navíc mám za úkol ošetřit výskyt souboru se stejným názvem, jako má jeden 
    adresář v tom druhém porovnávaném ( /cmp1/soubor  a /cmp2/soubor/). samozřejmě po nikom nechci řešení,   
    ale byl bych vděčný za nějaké rady ("man diff" není rada, s diffem jsem toho zkoušel hodně, ale problém
    soubor vs. adresář nejspíš nevyřeší). Děkuji za každou upřímnou radu.                       

Neměl bys ty školní projekty dělat sám? Jak jinak se to chceš naučit? Takhle tu vysokou nedoděláš....
Název: Re: shell skriptík
Přispěvatel: Kuba 10. 03. 2011, 15:11:25
Všem děkuju za příspěvky, pomocí těch výpisů už jsem to pomalu začal řešit a o rsyncu jsem nevěděl, budu muset zjistit, jestli to vůbec smím použít. Zní to až moc jednoduše.

Franta < "kdo hledá, najde", ale kdo se nebojí ptát, najde víc.. Nemysli si, že po založení tohoto topicu jsem založil ruce na hrudi a přestal s veškerou práci. Pokud ale o shellovém skriptování něco víš, snad také víš, jak je to rozsáhlá oblast.
Název: Re: Shell skript na tvorbu patchů
Přispěvatel: Kuba 11. 03. 2011, 07:30:10
Tak zřejmě jsem se k něčemu dopracoval. Požadovaných výsledků jsem dosáhl pomocí nástrojů sort a uniq, případně diff pro konkrétní rozdíly..   :D ale je to bolest na FITu s absolvovaným gymplem bez jakéhokoliv programování..