Prozedur für die Extraktion der Soundbeispiele im ASD-Tagungsband







  1. Abspeichern des kompletten Textes des Tagungsbands im txt-Format in der Datei "tagungsband.txt"
  2. Start des Shell-Skripts "extractSoundTagungsband.sh" (liegt in \\gwi-fs6\web$\ASD\cgi-bin):
  3. #!/bin/bash
    
    pfad="/cygdrive/x/asd/cgi-bin/"
    
    grep -o 'ASD[^ ]*|[^ ]*|[^ ]*|[^ ]*|[0-9]\+-\?\([0-9]\+\)\?' ${pfad}tagungsband.txt \
    | \
    gawk -f ${pfad}extractSoundTagungsband.awk \
    | \
    sed '$d' \
    | \
    mysql --defaults-file=~/.my.cnf -s -h gwi-sql2.gwi.uni-muenchen.de -P 3306 -u slu -D siebenbuergen \
    | \
    bash
    exit 0
    

    Die AWK-Datei hat folgenden Inhalt:

  4. BEGIN {
    FS="|";
    }
    {
    $0=gensub(/^[ \t]*/,"","g",$0); # ltrim
    $0=gensub(/[ \t]*$/,"","g",$0); # rtrim
    if($0~/^ASDphon/) { # bei Wenkersatzen phonetische Transkription!
     type="phon";
    }
    else if ($0~/^ASDorth/){
     type="orth";
    }
    if($NF~/-/) {
     print "SELECT concat_ws(' ', './praatcon.exe extract_manually.praat ', nr, case when min(intervall)!=max(intervall) then concat(min(intervall),'-',max(intervall)) else min(intervall) end, min(xmin), max(xmax)) as `command` FROM siebenbuergen.intervalle_"type" where nr like '"$(NF-1)"' and intervall between "gensub(/-/," and ","g",$NF)"";
    }
    else {
     print "SELECT concat_ws(' ', './praatcon.exe extract_manually.praat ', nr, case when min(intervall)!=max(intervall) then concat(min(intervall),'-',max(intervall)) else min(intervall) end, min(xmin), max(xmax)) as `command` FROM siebenbuergen.intervalle_"type" where nr like '"$(NF-1)"' and intervall like '"$NF"'";
    }
    print "union all";
    }

Schreibe einen Kommentar