hromadné odstraňovanie diakritiky

Sekcia: Konfigurácia 24.07.2011 | 11:18
Avatar Stanislav Hoferek Greenie 18.04  Používateľ
Pekný deň prajem, hľadám niečo (alebo skôr niekoho, kto by s tým pomohol) na odstraňovanie diakritiky.

Konkrétne hľadám niečo, čo dokáže urobiť niečo takéto, popísané v ľudskej reči:

1) vytvoriť priečinok nazvaný ascii
2) skopírovať txt súbory do tohto priečinku
3) vôjsť do neho
4) odsrániť diakritiku, nahradením á za a, é za e a podobne
5) prepísať názov súboru tak, že zmení koncovku z txt na ascii alebo na názov-ascii.txt

Ako na to? Prvé tri kroky sú jednoduché, no ďalšie dva veru neviem.

mkdir ascii && cp *.txt ascii && cd ascii && vyhádzať-diakritiku *.txt && zmeniť názov *.txt *-ascii.txt
    • Re: hromadné odstraňovanie diakritiky 24.07.2011 | 12:37
      Peter S.   Návštevník
      samotné odstranovanie diakritiky - skus mrknut na tento konkurenčný portál: http://www.abclinuxu.cz/poradna/linux/show/49287

      a nemal by si sa snažiť urobiť z toho oneliner, načo je ti to dobré...

      samotne premenovanie by si mohol urobiť takto:

      for file in `ls *txt`; do
      newfilename=`echo $file | sed s/txt/asci/`
      # alternatívne sed s/txt/-asci.txt/
      mv $file $newfilename
      done

      respektive celý skript urob ako iterovanie po jedntlivých súboroch.
    • Re: hromadné odstraňovanie diakritiky 24.07.2011 | 12:59
      Avatar Lukáš Staňa Arch, CentOS, Debian  Používateľ
      Ja to robievam pomocou iconv takto:
      iconv -f UTF-8 -t US-ASCII//TRANSLIT SUBOR > NOVY_SUBOR
      Tu to naozaj nemá ani kultúru ani úroveň
      • Re: hromadné odstraňovanie diakritiky 24.07.2011 | 19:35
        Avatar Stanislav Hoferek Greenie 18.04  Používateľ
        ďakujem obidvom. nejako som sa to snažil všelijako pokombinovať a funguje to :) Moc ďakujem. Výsledný "skript":


        iconv -f UTF-8 -t US-ASCII//TRANSLIT vodna-planeta-prva-kniha.txt > vodna-planeta-prva-kniha-ascii.txt
        iconv -f UTF-8 -t US-ASCII//TRANSLIT vodna-planeta-druha-kniha.txt > vodna-planeta-druha-kniha-ascii.txt
        iconv -f UTF-8 -t US-ASCII//TRANSLIT vodna-planeta-tretia-kniha.txt > vodna-planeta-tretia-kniha-ascii.txt
        iconv -f UTF-8 -t US-ASCII//TRANSLIT linux-ako-nieco-navyse.txt > linux-ako-nieco-navyse-ascii.txt
        iconv -f UTF-8 -t US-ASCII//TRANSLIT sachove-minimum.txt > sachove-minimum-ascii.txt
        iconv -f UTF-8 -t US-ASCII//TRANSLIT wesnoth-prirucka.txt > wesnoth-prirucka-ascii.txt


        Stačí to pustiť v tom istom priečinku a urobí to upravené kópie s akýmkoľvek názvom. Ďaleko od dokonalosti, ale funguje :)
        • Re: hromadné odstraňovanie diakritiky 27.07.2011 | 02:32
          Avatar bedňa LegacyIce-antiX  Administrátor
          Nemá to ďaleko od dokonalosti, ono je to jediné použiteľné riešenie, pretože všetky ostatné nástroje bohužiaľ sklamú.
          Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org