Osobní nástroje
Nacházíte se zde: Úvod Kooperace program pro statistiku (Aleph)
Akce dokumentů

program pro statistiku (Aleph)

Soubor získáte klepnutím sem.

Velikost: 8.2 kB - Typ souboru text/x-sh

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
únor 2020 »
Ne Po Út St Čt So
1
2345678
9101112131415
16171819202122
23242526272829