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