#!/bin/bash# @author Martin Lukeš# @e-mail martin.meridius@gmail.com# Tento skript je vyhradne mym dilem a davam jej k dispozici pod licenci CC-BY-NC.# Shrnuti podminek teto licence je zde http://creativecommons.org/licenses/by-nc/3.0/## Zpracovavana data pochazi z http://meta.wikimedia.org/wiki/List_of_Wikipedias# a jsou uverejnena pod licenci CC-BY-SA, kterou lze nalezt zde# http://creativecommons.org/licenses/by-sa/3.0/## Seznam kompatibilnich licenci lze nalezt zde http://wiki.creativecommons.org/Frequently_Asked_Questions#If_I_use_a_Creative_Commons-licensed_work_to_create_a_new_work__.28ie_a_derivative_work_or_adaptation.29.2C_which_Creative_Commons_license_can_I_use_for_my_new_work.3F# Tento skript ze vstupniho souboru (wiki stranka seznamu jazyku) parsuje udaje v nasledujicim tvaru:# anglicky nazev jazyku;nazev jazyku v rodnem jazyce;kod jazyku# Vzorove radky vstupniho souboru:#<td><a href="http://en.wikipedia.org/wiki/Choctaw_language" class="extiw" title="w:Choctaw language">Choctaw</a></td>#<td class="plainlinksneverexpand"><a href="http://cho.wikipedia.org/wiki/Chahta_Anumpa" class="external text" rel="nofollow">Choctaw</a></td>#--#<td><a href="http://en.wikipedia.org/wiki/Marshallese_language" class="extiw" title="w:Marshallese language">Marshallese</a></td>#<td class="plainlinksneverexpand"><a href="http://mh.wikipedia.org/wiki/Kajin_M%CC%A7aje%C4%BC" class="external text" rel="nofollow">Ebon</a></td>SOUBOR_PUVODNI=List_of_Wikipediaswget -o $0.wget_log -O ${SOUBOR_PUVODNI} http://meta.wikimedia.org/wiki/List_of_Wikipediasif [ -f $SOUBOR_PUVODNI ]; then echo "Seznam jazyku ze stranek Wikipedia je stazen." # TODO - podminka je splnena, i kdyz soubor nestahne! PROC kdyz v if-u nize funguje normalne?else echo "Seznam jazyku ze stranek Wikipedia se nepodarilo stahnout!" cat $0.wget_log exitfiSOUBOR_POMOCNY=${SOUBOR_PUVODNI}-dva_radkySOUBOR_VYSLEDNY=${SOUBOR_PUVODNI}-vysledekif [[ -f $SOUBOR_VYSLEDNY ]]; then echo -n "Soubor ${SOUBOR_VYSLEDNY} jiz existuje! Prepsat? (A/n): " read rozhodnuti case $rozhodnuti in n|N ) exit ;; a|A|* ) rm $SOUBOR_VYSLEDNY ;; esacfi# smaze prazdne radky a ulozi dulezite informacegrep '.' $SOUBOR_PUVODNI | grep td | grep -A1 language >${SOUBOR_POMOCNY}while read radek; do if [[ "${radek}" =~ "language" ]]; then orig_nazev=${radek#*language\">} orig_nazev=${orig_nazev%%<*} echo -n ${orig_nazev}";" >> "$SOUBOR_VYSLEDNY" fi if [[ "${radek}" =~ "external" ]]; then nazev_jazyku=${radek#*nofollow\">} nazev_jazyku=${nazev_jazyku%%<*} echo -n ${nazev_jazyku}";" >> "$SOUBOR_VYSLEDNY" kod_jazyku=${radek#*http://} kod_jazyku=${kod_jazyku%%.*} echo $kod_jazyku >> "$SOUBOR_VYSLEDNY" fidone <${SOUBOR_POMOCNY}mv $SOUBOR_VYSLEDNY ${SOUBOR_VYSLEDNY}-pomsort ${SOUBOR_VYSLEDNY}-pom -o $SOUBOR_VYSLEDNYrm ${SOUBOR_VYSLEDNY}-pomrm $SOUBOR_POMOCNYrm $SOUBOR_PUVODNIecho "Hotovo! Vysledek se nachazi v souboru ${SOUBOR_VYSLEDNY}"Uvedená práce (dílo), jejímž autorem je Martin Lukeš, podléhá licenci Creative Commons Uveďte autora-Neužívejte dílo komerčně 3.0 Česká republika.