Lista de minicuentos de ciudadseva por número de palabras
Esta página puede ser útil a profesores y maestros, aunque hay que tener en cuenta que en los microcuentos la dificultad de comprensión no solo estriba en el número de palabras, sino en el léxico usado y las inferencias que haya de realizar el lector a partir de su cultura enciclopédica.
Se recomienda no buscar cuentos largos ni cortos.
Datos actualizados a 2021/11/02 18:26 Deeplink añadido 2021/11/08 tras consulta a CiudadSeva.com
Código principal. He eliminado intencionadamente cómo obtener el índice principal de minicuentos.
Este código necesita la utilidad ssed (o sed para windows), wc (utilidad word count de linux, que se puede encontrar en mingw, msys o en las extensiones linux de windows) y curl (instalado por defecto en windows10, pero a menudo bloqueado por los antivirus).
NOTA: El código se muestra tal como se usaría desde la línea de comandos de Windows (cmd.exe). Si desea convertirlo en un archivo de proceso por lotes (.bat, .cmd), debería duplicar cada “%” (“for /F %a in (lista4)”⇒“for /F %%a in (lista4)”, etc.)
rem 'lista' contiene el índice principal de "minicuentos" obtenido usando curl. rem rem Quedarse con los hipervínculos: type lista|ssed -f separa_tags.sed|ssed -e "/\/texto\//!d;/href/!d;s/[<>]//g" > lista2 rem rem Elimina lo que haya antes de la primera comilla: rem Algunas versiones de sed no reconocen los códigos octales. En ese caso, cambiar por :rem type lista2 |ssed -e "s/^[^\"]*\"//" >lista3 type lista2 |ssed -e "s/^[^\o41]*\o41//" >lista3 rem rem Elimina lo que haya después de la última barra (última barra y comilla). rem Algunas versiones de sed no reconocen los códigos octales. En ese caso, cambiar por: :rem type lista3 |ssed -e "s/\/\""//" >lista4 rem (duplicar la comilla para que msdos no se haga un lío emparejando comillas). type lista3 |ssed -e "s/\/\o41/\o41/" >lista4 rem 'lista4' ahora contiene la lista de url de cuentos sin la / final, para poder usar el nombre rem de cuento como nombre de archivo temporal. rem rem Obtener los cuentos: for /F %a in (lista4) do curl "%~a/" -o "%~na.html" rem quitarle el código a los cuentos y contar el número de palabras for %a in (*.html) do type %a |ssed -f separa_tags.sed | ssed -f soloarticle.sed | ssed -f solobody.sed |ssed -f limpiahtml.sed |wc -w >%~na.wordcount rem generar la lista de número de palabras for %a in (*.wordcount) do for /F %B in ('type %a') do echo %B %a >> listado-wc rem la lista la he ordenado después con el "sort" de unix (no el de mswindows, que no admite ordenar por número). rem en caso necesario se puede ordenar importando el archivo a una hoja de cálculo como archivo de texto.
Este script separa cada etiqueta html en una línea diferente.
s/[>]/&\n/g;
Este script se queda con el contenido delimitado por la etiqueta article:
1,/[<]article/d /[<]\/article/,$d
Este script se queda con el contenido delimitado por la etiqueta body. El contenido que buscamos está en body←article←body.
1,/[<]body/d /[<]\/body/,$d
Este script se queda solo con el texto, convierte unas cuantas “entidades” en caracteres y elimina espacios en blanco para que WC cuente el número de palabras adecuadamente.
/[<]h6/,/[<]\/h6/d s/[<][^>]*[>]//g s/\o11/ / :a s/ / /g ta s/á/á/ s/é/é/ s/í/í/ s/ó/ó/ s/ú/ú/ s/Á/á/ s/É/é/ s/Í/í/ s/Ó/ó/ s/Ú/ú/ s/ü/ü/ s/Ü/ü/ s/ñ/ñ/ s/Ñ/ñ/ s/¡/¡/ s/&iques;/¿/ s/"/"/ s/\&[^;]*;/Z/g /^[ ]*$/d
# Generar la tabla de links. # Antes de ejecutar esto habría que sustituir cada línea en la salida de SORT por |NNN|Nombrearchivo| # (No recuerdo si la entrada de SORT usa barras o espacios) # Para eso podría usarse ssed -e "s/^/|/g; s/$/|/g; s/ /|/g" # # Cambia | blablabla | nombrecuento | a # | blablabla | [https://ciudadseva.com/texto/nombrecuento nombrecuento | # Lo uso para mi contador de palabras en cuentos de ciudadseva # # 1) Elimino .wordcount del final de cada línea. s/.wordcount//g # 2) Sustituyo los campos. Elimino espacios a inicio y finald de campo porque pueden # provocar efectos inesperados (dokuwiki no los ignora en los link). s!|\([^| ].*\)[ ]*|[ ]*\([^| ]*\)[ ]*|!|\1|[[https://ciudadseva.com/texto/\2/|\2]]|!g # 3) Sustituyo - por espacio en el interior del último campo. s/\(|.*|.*|[^-*]\)-/\1 /g