Obsah souboru
#!/bin/bash
#
# Skript: stat_aut - statistika autorit. Pro alephovske knihovny, Aleph verze 16.
#
# Ve statistice se pocitaji zasadne autority (ne pole), a to autority uz unikovane
# (bez opakovani). Takto:
# Vezmou se cisla autorit ze zaznamu zpracovanych v danem obdobi (podle IST) a
# s danou siglou (v 040), ktere maji podpole 7, a to uz unikovane (bez opakovani)
# - to je prvni cislo.
# A druhe cislo jsou ty z nich, ktere jsou v zaznamech autoritni baze NK za stejne
# obdobi (a urcene kody; v 906) a se siglou knihovny.
# Ty znamenaji "neuspesnost" pri hledani autorit v NK.
#
# Obdobim pro statistiku je mesic (urceny rokem a mesicem).
#
# Skript se vola s parametry: rok (tvaru RRRR) a mesic (tvaru MM).
# Pred rokem (tedy na zacatku) muze byt prepinac N ... to kdyz se skript spousti
# opakovane (ten den) a neni potreba opakovane delat export aut. baze,
# resp. rozpakovani aut. a bib. baze.
#
# Ve skriptu jsou popsane 3 varianty - ohledne ziskani exportu aut. a bib. baze.
# var. A - pro knihovny, ktere stale maji export bazi (napr. pravidelny nocni export).
# var. B - pro knihovny, ktere exporty bazi nemaji primo, ale maji je zapakovavane (gzip).
# var. C - pro knihovny, ktere nemaji ani zapakovavane exporty bazi - export aut. baze bude
# vytvoren; tato var. trva nejdele.
# Ted tu plati var. B, ostatni jsou zakomentovane.
#
# Pavel Husek, SVK HK
# sigla knihovny
sigla=HKA001
# emailove adresy na poslani vysledku (lze i vice, oddelovat carkami)
#napr. email_adresy="helena.dvorakova@omega.nkp.cz, irena.blazkova@omega.nkp.cz, zdenek.bartl@omega.nkp.cz"
email_adresy=""
#adresar pro uchovavany soubor s vysledky
dir_vysledky=/exlibris/aleph/u16_1/nkc10/scratch
# ...nebo napr. /eva/aleph/data
# kde ten soubor ma lezet (aby nebyl smazan). Zatim takhle.
# datum exportu bib. baze a aut. baze (bude-li potreba), tvar RRRRMMDD
dat_exp=`date +"%Y%m%d"`
# datum vcerejska ... dat_exp=`date -d "1 day ago" +"%Y%m%d"`
##########################################################################
aut_neexportovat=0
while [ "$1" == "N" ] || [ "$1" == "n" ]; do
if [ "$1" == "N" ] || [ "$1" == "n" ]; then aut_neexportovat=1; shift; fi
done
if [ $# -lt 1 ]; then
echo "Neni zadany rok. "
echo "Skript se vola s parametry: rok (tvaru RRRR) a mesic (tvaru MM). "
echo "Pred rokem (tedy na zacatku) muze byt prepinac N ... kdyz se skript spousti "
echo "opakovane (ten den) a neni potreba opakovane delat export aut. baze, "
echo "resp. rozpakovani aut. a bib. baze."
exit
fi
if [ -e $dir_vysledky/efektivita$1-$2.txt ]; then
mv $dir_vysledky/efektivita$1-$2.txt $dir_vysledky/efektivita$1-$2.txt.old
fi
# pocatecni text (nadpis) do vysledku
echo "Knihovna ${sigla} (`date +"%e.%m.%Y"`)" > $dir_vysledky/efektivita$1-$2.txt
# * AUT baze (kopie z NK) * ........................................
# ziskat export aut. baze
# var. A - uz je
# export_aut=/eva/aleph/data/autvse.dat
# var. B - nejdriv rozpakovat export baze
export_aut=/exlibris/aleph/u16_1/nkc10/scratch/_nkc10.zaloha.${dat_exp}
# podle prepinace ? rozpakovat export aut. baze
if ! [ $aut_neexportovat == "1" ]
then
# test, jestli soubor zapakovaneho exportu existuje
if ! [ -e ${export_aut}.gz ] ; then
echo "Neexistuje zapak. export aut.baze ${export_aut}.gz !"; exit;
fi
gunzip -c ${export_aut}.gz > ${export_aut}
fi
# var. C - vytvorit export aut. baze
# podle prepinace ? delat export aut. baze
#if ! [ $aut_neexportovat == "1" ]
# then
# csh -f $aleph_proc/p_file_03 nkc10,doc,go,999999999,FIX,
# fi
#export_aut=/exlibris/aleph/u16_1/nkc10/files/doc.seqaa
# dale - vsechny var.
# adresar scratch aut. baze
aut_scratch_dir=/exlibris/aleph/u16_1/nkc10/scratch
# ...nebo napr. /eva/aleph/data
cd ${aut_scratch_dir}
# test, jestli export baze existuje
if ! [ -e ${export_aut} ] ; then
echo "Neexistuje export aut.baze ${export_aut} !"; exit;
fi
# vyhledat aut. zaznamy podle obdobi + kody, ktere jsou potreba (tady za, ko)
grep ' 906...L ' ${export_aut} | grep -E '(...L \$\$aza|...L \$\$ako)'$1$2 | cut -d' ' -f1 | sort -u > staut_906
# vyhledat aut. zaznamy podle sigly knihovny
grep ' 040...L .*\$\$a'${sigla} ${export_aut} | cut -d' ' -f1 | sort -u > staut_040
comm -12 staut_906 staut_040 | sed 's/$/ 001 L /' > staut_906a
fgrep -f staut_906a ${export_aut} | sed 's/.* //' | sed 's/$/_/' | sort -u > staut_a001
# tady lze prip. hlaska ("Pocet autorit vytvorenych nasi knihovnou" ... staut_a001 )
# * BIB baze (i nekolik bazi) * ...........................................
# vyjmenovane bibliograficke baze pro statistiku
for b in hka
# nebo napr. for b in nkc anl slk kkl
do
# adresar scratch bib. baze
bib_scratch_dir="/exlibris/aleph/u16_1/${b}01/scratch"
# ...nebo napr. "/eva/aleph/u16_1/${b}01/scratch"
cd ${bib_scratch_dir}
mv pocet pocet.old
echo "--------------------------------" >> pocet
echo "Vyuziti jmennych autorit v bazi ${b}01 za obdobi $1-$2" >> pocet
# var. A nebo B - vyjde z exportu bib. baze
export_bib="/exlibris/aleph/u16_1/${b}01/scratch/_hka01.zaloha.${dat_exp}"
# nebo napr.
# export_bib="/eva/aleph/data/${b}vse.dat"
# var. A - export bib. baze je
# var. B - nejdriv rozpakovat export baze
# podle prepinace ? rozpakovat export bib. baze
if ! [ $aut_neexportovat == "1" ]
then
# test, jestli soubor zapakovaneho exportu existuje
if ! [ -e ${export_bib}.gz ] ; then
echo "Neexistuje zapak. export bib.baze ${b}01: ${export_bib}.gz !"; exit;
fi
gunzip -c ${export_bib}.gz > ${export_bib}
fi
# a dale stejne jako var. A :
# test, jestli export bib. baze existuje
if ! [ -e ${export_bib} ] ; then
echo "Neexistuje export bib.baze ${b}01: ${export_bib} !"; exit;
fi
# vyhledat bib. zaznamy podle obdobi + urcitych kodu (tady jk, vk)
grep ' IST...L ' ${export_bib} | grep -E '(\$\$ajk|\$\$avk)'$1$2 | cut -d' ' -f1 | sort -u | sed 's/$/'${b}'01/' > staut_${b}_obdobi
# prip. i podle sigly knihovny...
grep ' 040...L .*\$\$a'${sigla} ${export_bib} | cut -d' ' -f1 | sort -u | sed 's/$/'${b}'01/' > staut_${b}_sigla
comm -12 staut_${b}_obdobi staut_${b}_sigla > $alephe_scratch/staut_${b}_zazn
# var. C
# vyhledat bib. zaznamy podle obdobi + urcitych kodu (tady jk, vk), s rejstrikem IST,a (tady WIT)
#csh -f $aleph_proc/p_ret_03 "${b}01,staut_${b}_obdobi,wit=(jk${1}${2}* OR vk${1}${2}*),"
# anebo neni-li na to rejstrik... (ale pomale - 3 hod. misto 3 sek.)
# csh -f $aleph_proc/p_ret_01 "${b}01,,staut_${b}_obdobi,000000000,999999999,,00,00000000,99999999,00000000,99999999,,OR,IST,a,jk${1}${2}01,jk${1}${2}31,IST,a,vk${1}${2}01,vk${1}${2}31,00000000,99999999"
# prip. i podle sigly knihovny, s rejstrikem 040,a (tady WCA)
#csh -f $aleph_proc/p_ret_03 "${b}01,staut_${b}_sigla,wca=${sigla},"
# a dohromady (prunik)
#csh -f $aleph_proc/p_ret_10 "${b}01,staut_${b}_obdobi,AND,staut_${b}_sigla,staut_${b}_zazn,"
# dale - vsechny var.
# tady lze prip. hlaska ("Celkovy pocet zpracovanych zaznamu (vsechny IST)" ... $alephe_scratch/staut_${b}_zazn )
# pole, ktera se maji vyhledat
csh -f $aleph_proc/p_print_03 "${b}01,staut_${b}_zazn,ENG,10###,11###,70###,71###,60###,61###,,,staut_${b}_jmzah,A,"
# pripadne to lze i na vickrat, napr.:
# csh -f $aleph_proc/p_print_03 "${b}01,staut_${b}_zazn,ENG,100##,110##,111##,600##,610##,611##,700##,710##,staut_${b}_jmzah1,A,"
# csh -f $aleph_proc/p_print_03 "${b}01,staut_${b}_zazn,ENG,711##,,,,,,,,staut_${b}_jmzah2,A,"
# cat staut_${b}_jmzah1 staut_${b}_jmzah2 | sort > staut_${b}_jmzah
# tady lze prip. hlaska ("Pocet selekcnich terminu (poli) ve vyhledanych zaznamech" ... staut_${b}_jmzah )
#pole, ktere maji vazbu na autoritu - maji podpole 7
echo "Celkem autorit z jmennych zahlavi (unikovanych)" >> pocet
fgrep '$$7' staut_${b}_jmzah | sed 's/.*\$\$7//' | sed 's/\$\$.*//' | sed 's/$/_/' | sort -u > staut_${b}_jmzah_p7
cat staut_${b}_jmzah_p7 | wc -l >> pocet
echo "Z toho vytvorenych pracovniky knihovny" >> pocet
comm -12 staut_${b}_jmzah_p7 ${aut_scratch_dir}/staut_a001 | wc -l >> pocet
cat pocet >> $dir_vysledky/efektivita$1-$2.txt
done
# vysledky mailem
if [ "$email_adresy" != "" ] && [ -s $dir_vysledky/efektivita$1-$2.txt ]; then
Mail -s "Statistika efektivity ${sigla} $1-$2" $email_adresy < $dir_vysledky/efektivita$1-$2.txt
fi