sobota 20. listopadu 2010

Detoxikace názvů souborů

Občas dostanu ke zpracování soubory, které v názvech obsahují znaky, které se vůbec neslučují se zpracováním v určitých aplikacích. Potřebuji z názvů odstranit diakritiku a různé závorky, apostrofy a podobnou havěť. Velmi jednoduše se dá použít program detox, který se specializuje na likvidaci potenciálně problematických znaků v názvech souborů. Detox má připravené tabulky pro převod znaků v kódování UTF-8 a ISO 8859-1, umístěné v adresáři /usr/share/detox/ a dále je řízen takzvanými sekvencemi, které si můžete tvořit sami, nebo využít ty, které jsou definovány v souboru /etc/detoxrc. Detox je v repozitáři Universe, instaluje se klasicky:



$ sudo apt-get install detox

Doporučuji zhlédnout manuál:

$ man detox
$ nam detoxrc
$ man detox.tbl

Jako výchozí používá detox sekvenci pro vyčištění názvů kódovaných v UTF-8 a pokud nemáte nějaké specifické požadavky stačí spustit:

$ detox adresář/se/soubry

Je dobré se předem podívat, co program s názvy udělá, dříve, než provede přejmenování ve filesystému, k tomu slouží přepínač -n/--dry-run, který pouze vypíše seznam souborů s jejich potenciální náhradou.

$ detox -n adresář/se/soubry

Dále je zajímavý přepínač -r, pro rekurzivní přejmenování souborů v podadresářích.


Zde jsou nějaké další zdroje k problematice:
http://www.abclinuxu.cz/blog/firefox_bal/2010/8/detox-mdash-cistime-jmena-souboru
http://www.abclinuxu.cz/blog/Tomik/2007/11/uzitecne-skripty-7-hromadne-prejmenovani-souboru/

Zajímavý může být i program pyRenamer, který je také v repozitáři Ubuntu. Ten umí přehledně v grafickém rozhraní přejmenovávat podle různých pravidel, odstraní diakritiku, mezery, ale hromadné nahrazení speciálních znaků jsem tam nezahlédl. 

2 komentáře:

  1. WOW, tady občas člověk objeví hotové poklady o které by jinde nezakopl. Díky za tip, už jsme detoxikoval vše ze školních serverů kde málokdo umí normálně zipovat a pojmenovávat soubory.

    OdpovědětVymazat
    Odpovědi
    1. Jo, občas tu něco překvapí i mě :)

      Vymazat

Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.

Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.