Comandes:
Busca si una PARAULA existeix:
curl -X POST --data "DecEntradaText=$PARAULA" "https://dlc.iec.cat/Results"
També es pot buscar amb el post a la url però falla amb caràcters especials com à,è,ç,l·l,ü….
curl -s "https://dlc.iec.cat/Results?DecEntradaText=$PARAULA"|grep "1 registres"
Buscar per ID:
https://dlc.iec.cat/Results/PrintAccepcio?id=$ID
Descarreguem totes les paraules de https://dlc.iec.cat
Primer fem consulta de totes les paraules que comencen per unes lletres.
Aqui falten paraules, sobretot els femenins, com alesiada
Hem tronar alesiat que té l'id 0043250
Si busquem aquest id amb la comanda:
https://dlc.iec.cat/Results/PrintAccepcio?id=0043250
Ens dona:
<div id="Definition" class="resultDefinition"><h2 xmlns:fo="http://www.w3.org/1999/XSL/Format"><span class="title">alesiat </span><span class="title">-ada </span><br></h2><br xmlns:fo="http://www.w3.org/1999/XSL/Format"><span class="tagline" xmlns:fo="http://www.w3.org/1999/XSL/Format">adj.</span><span class="body" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <span class="tip" onmouseover="doTooltip(event, ' [LC] ' )" onmouseout="hideTip()"> [LC] </span><span class="tip" onmouseover="doTooltip(event, ' [MD] ' )" onmouseout="hideTip()"> [MD] </span> </span><span class="body" xmlns:fo="http://www.w3.org/1999/XSL/Format">Espatllat, inutilitzat, en alguna part del cos. </span><span class="body" xmlns:fo="http://www.w3.org/1999/XSL/Format"><span class="italic">Estar nafrat o alesiat d’algun dels seus membres.</span></span></div>
Ens fixem en aquesta part:
<span class="title">alesiat </span><span class="title">-ada </span>
Amb aquesta consulta treiem tots els resultats:
grep 'id="Definition"' 0* |awk -F '<|>' '{for(i=1;i<=NF-2;i++) if ( $i ~ /title/ ) printf $i" - "$(i+1)"\n"}' grep 'id="Definition"' 0* |awk -F '<|>' '{for(i=1;i<=NF-2;i++) if ( $i ~ /title/ ) print $(i+1)}'
Explicació:
- amb awk -F '<|>' treiem el que hi ha entre < i >:
<div id="Definition" class="resultDefinition"> <h2 xmlns:fo="http://www.w3.org/1999/XSL/Format"> <span class="title"> silf </span><span class="title"> sílfide </span>
Qeuda així:
div id="Definition" class="resultDefinition" h2 xmlns:fo="http://www.w3.org/1999/XSL/Format" span class="title" silf /span
El que fem es buscar quan un camp es span class=“title” imprimim el següent
amb aquesta consulta ens dona la segona part de la línia, la de “-ada”
grep 'id="Definition"' 0043250|sed -e 's/^.*title">\([^ ]*\).*$/\1/'
-ada
Amb això treiem la primera i la segona definició:
grep 'id="Definition"' 0043250|awk -F'class="title">|<' {'print $5'} alesiat grep 'id="Definition"' 0043250|awk -F'class="title">|<' {'print $8'} alesiada
Busquem amb awk que el paràmetre $8 comenci per - i escribim la paraula, que es el paràmetre 5 i el sufix que es el 8
grep 'id="Definition"' *|awk -F'class="title">|<' '{if ( $8 ~ /^-/ ) printf $5$8"\n"}'
Ens dona una llista com aquesta:
romandalusí -ina reconegut -uda -nervi -nèrvia boreoalpí -ina galileà -ana glotalitzat -ada este -a morenc -a
A partir d'aqui busquem patrons, per exemple:
este -a morenc -a
Seria este/esta i morenc/morena en un trec una lletra i en un altre no. Poter es si la paraunla acava amb vocal
Treiem tots els sufixos:
grep 'id="Definition"' *|awk -F'class="title">|<' '{if ( $8 ~ /^-/ ) printf $8"\n"}'|sort | uniq
Treiem sufixos de sufixos, es a dir:
-adelf -adelfa -agog -agoga -àlgic -àlgica -àmbul -àmbula -andre -andra
Treiem els que comencin amb - dient: $5 !~ /^-/
grep 'id="Definition"' *|awk -F'class="title">|<' '{if ( $8 ~ /^-/ && $5 !~ /^-/ ) printf $5 $8"\n"}'|wc -l
Busquem sufix -a i que la paraula acabi amb e:
grep 'id="Definition"' *|awk -F'class="title">|<' '{if ( $8 ~ /^-a / && $5 ~ /e $/ ) printf $5$8"\n"}'
O els que acaben amb vocal:
grep 'id="Definition"' *|awk -F'class="title">|<' '{if ( $8 ~ /^-a / && $5 ~ /[aeiou] $/ ) printf $5$8"\n"}'
Buscar definicions de sufixes:
#!/bin/bash >paraules_amb_sufix while read linea do paraula=`echo $linea |awk {'print $1'}` sufix=`echo $linea |awk {'print $2'}| sed 's/[- ]//g'` if [ $sufix == "a" ] || [ $sufix == "ana" ] then #si acaba amb consonant, no trec res i si acaba amb consonant trec 1 caràcter echo ${paraula: -1} echo ${paraula: -1} | grep [aeiou] if [[ "`echo ${paraula: -1} | grep [aeiouàèìòùáéíóúäëïöüâêîôû]`" == "" ]] then echo "edípic-a" let resta=0 else let resta=1 fi elif [ $sufix == "ina" ] || [ $sufix == "una" ] || [ $sufix == "ona" ] || [ $sufix == "ena" ] then let resta=1 elif [ $sufix == "ea" ] || [ $sufix == "issa" ] || [ $sufix == "essa" ] || [ $sufix == "ossa" ] then let resta=2 else let resta=(${#sufix}-1) fi if [ $resta -eq 0 ] then echo ${paraula}$sufix" "${paraula}"-"${sufix} >> paraules_amb_sufix else echo ${paraula::-${resta}}$sufix" "${paraula}"-"${sufix} >> paraules_amb_sufix fi # echo done < <( grep 'id="Definition"' *0 |awk -F'class="title">|<' '{if ( $8 ~ /^-/ && $5 !~ /^-/ ) printf $5 $8"\n"}') while read linea do #abans treia les tildes perquè feia el POST a la mateixa URL, ara faig amb -X POST #paraula=`echo $linea|sed 's/[àáä]/a/g' | sed 's/[èéë]/e/g'| sed 's/[ìíï]/i/g' | sed 's/[òóö]/o/g' | sed 's/[ùúü]/u/g' | sed 's/·//g'` echo $lnea until torify curl -s -o definicions_sufix/$linea -X POST --data "DecEntradaText=${linea}" "https://dlc.iec.cat/Results" do echo "Reiniciando" sudo /etc/init.d/tor restart done done < <(cat paraules_amb_sufix |awk {'print $1'})