Porovnani souboru

ŠTEFL Martin mstefl na koop.cz
Středa Září 20 08:41:21 CEST 2006


Dobry den,
dekuji vam vsem za nazor, ale neresi to muj problem s pomalosti. 
Jak vidite potrebuji mit vysledny soubory 3. update, insert a delete.
A porblem je ten ze grep musi grepovat jen prvni radku souboru.
A jeste pokud soubor neexistuje hto bude soubor insert. 

Dekuji.

P.S.: Omlouvam se za dlouhy mail.

Script vypada nasledovne :

if [ $1 ] && [ $2 ] && [ -e $1 ] && [ -e $2 ]
then
        diff=`diff -q $1 $2`;
        if [ -z "$diff" ]
        then
        echo "Vstupni soubory jsou stejne";
        else

                diff $1 $2 >> $kdediff

                # Tady rozdeluji soubor zmen
                cat $kdediff | grep "<" | cut -b 3-300 >> $allinsert
                cat $kdediff | grep ">" | cut -b 3-300 >> $alldelete
                cat $kdediff | grep "<" | cut -b 3-300 | awk 'BEGIN{FS="|"}
{print $1}' >> $insert
                cat $kdediff | grep ">" | cut -b 3-300 | awk 'BEGIN{FS="|"}
{print $1}' >> $delete


                        # Tady vyhledavam zmeny
                        cat $insert | while read line; do
                        cat $delete | grep $line >> $updateradky
                        done


                        # Tady provadim diff pro nove soubory
                        diff $insert $delete | grep "<" | cut -b 3-300 > 
$insertradky

                        # Tady provadim diff pro smazane soubory
                        diff $insert $delete | grep ">" | cut -b 3-300 > 
$deleteradky

                        #Vytvoreni vet

                        cat $allinsert | while read line; do
                        echo "zacatek$line" >> $allinsert.zac.$log
                        done

                        cat $alldelete | while read line; do
                        echo "zacatek$line" >>  $alldelete.zac.$log
                        done

                        # update
                        cat $updateradky | while read line; do
                        cat $allinsert.zac.$log | grep "zacatek$line" | cut -b 
8-1000 >> $kdelog/update.$jedinecny.sql
                        done

                        #insert
                        cat $insertradky | while read line; do
                        cat $allinsert.zac.$log | grep "zacatek$line" | cut -b 
8-1000 >> $kdelog/insert.$jedinecny.sql
                        done
                        #delete
                        cat $deleteradky | while read line; do
                        cat $alldelete.zac.$log | grep "zacatek$line" | cut -b 
8-1000  >> $kdelog/delete.$jedinecny.sql
                        done



        fi




else

                if [ $2 ]
                then
                cp $1 $kdelog/insert.sql
                else
                exit
                fi


fi


----------------------------------------------------
	ŠTEFL Martin			
	Mob.		: 602 687 837		
	ICQ		: 81195427		
	E-mail	: mstefl na koop.cz	
	WEB		: mstefl.epeople.cz	
---------------------------------------------------

This e-mail can not contain any viruses because I use Linux
  Tento e-mail neobsahuje viry, protože používam Linux


Další informace o konferenci Linux