abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
včera 16:01 | Zajímavý software
Libre Graphics World informuje o aplikaci BirdFont, jež slouží k tvorbě fontů, které je možné exportovat ve formátech TTF, EOT a SVG. Program je dostupný pod licencí GNU/GPL a je navíc multiplatformní, neboť kromě Linuxu podporuje i Windows, Mac či OpenBSD.
xkomczax | Komentářů: 21
včera 13:02 | Komunita
Na zítra připadá letošní Software Freedom Day (Wikipedia). Kolik podpůrných akcí se koná v Česku a na Slovensku? Dle aktuální mapy akcí žádná.
Ladislav Hagara | Komentářů: 2
18.9. 15:16 | Pozvánky
Sledujte stream z polské konference SmartDevConf. V programu jsou zajímavá témata jako Pebble, Tizen, Cordova a další.
joejoe | Komentářů: 0
18.9. 00:33 | Nová verze
Novou verzi oficiální distribuce minipočítače Raspberry Pi doplňuje i nová verze instalačního nástroje NOOBS 1.3.10. Mimo jiné došlo k následujícím změnám: Java aktualizována na JDK 8, Mathematica na verzi 10 a Sonic Pi na verzi 2. Součástí standardní instalace je nově Minecraft Pi.
Tadeáš Pelech | Komentářů: 28
17.9. 22:58 | Komunita
Společnost SUSE vznikla v roce 1992. V roce 2003 ji koupila společnost Novell (zprávička). Novell byl v roce 2011 koupen společností Attachmate (zprávička). V pondělí oznámila společnost Micro Focus, že kupuje Attachmate. Na openSUSE by změna neměla mít žádný vliv.
Ladislav Hagara | Komentářů: 7
16.9. 20:39 | Nová verze
Byl vydán MINIX 3.3.0. Nejnovější verze tohoto unixového operačního systému postaveného na architektuře mikrojádra běží nově také na jednodeskových počítačích BeagleBoard XM, BeagleBone White a BeagleBone Black. Přehled nových vlastností a vylepšení v poznámkách k vydání.
Ladislav Hagara | Komentářů: 36
16.9. 19:50 | Nová verze
Vyšla nová stabilní verze 0.19.0 desktopového prostředí Enlightenment. Verze 0.19.0 (E19) vychází necelých 9 měsíců po vydání verze 0.18.0 (E18) (zprávička). Těsně před vydáním nové verze Enlightenmentu byla vydána verze 1.11.2 knihoven EFL (Enlightenment Foundation Libraries), Elementary a Evas Generic Loaders. Vydána byla také verze 1.11.0 Python-EFL.
Ladislav Hagara | Komentářů: 26
15.9. 21:24 | Pozvánky
Spolek OpenAlt zve na 108. distribuovaný sraz příznivců svobodného softwaru a otevřených technologií (hardware, 3D tisk, SDR, DIY, makers…), který se bude konat tento pátek 19. září od 18 hodin ve Výtopně v Brně (Hlinky 972/34) a v Lokalbloku v Praze (Náměstí 14. října 10).
xkucf03 | Komentářů: 10
15.9. 20:06 | Pozvánky
Opensource školení o ZeroMQ se sice muselo zrušit, ale pokud vás téma zajímá, máte šanci ještě zítra (16. 9.) zajít s Pieterem Hintjensem do hospody a o ZeroMQ si popovídat u piva. Budeme od 17:30 v The Pub na Praze 6.
Miška | Komentářů: 12
15.9. 16:09 | Nová verze
Laboratoře CZ.NIC vydaly novou verzi multiplatformního klienta pro datové schránky Datovka. Tato verze opravuje několik chyb a přidává podporu pro novější verze doprovodných knihoven. Další informace a balíčky jsou k dispozici na stránkách projektu.
Vilem Sladek | Komentářů: 3
Hlasuji z:
 (82%)
 (13%)
 (2%)
 (2%)
 (0%)
 (0%)
Celkem 3603 hlasů
 Komentářů: 42, poslední 25.8. 11:10
Rozcestník
Reklama
Autoškola testy online Levný benzín

Dotaz: Hromadná úprava textových souborů

12.3.2011 12:39 DWD | skóre: 15 | blog: papiry
Hromadná úprava textových souborů
Přečteno: 1401×

Mám uloženo hodně html souborů, ale v kódování, které mi moc nevyhovuje. Zobrazuje se mi to v prohlížeči sice dobře, ale přesto bych to raději předělal do jiné znakové sady. Je to ve iso-8859-2 a já bych to chtěl předělat do kódování UTF-8. To by nebyl problém upravit. Udělal bych to tak, že bych soubor otevřel v KWrite, nastavil KWrite, ať je text čitelný, potom bych ještě přepsal tag meta ze iso-8859-2 na UTF-8 a potom dal soubor uložit a zvolil uložit ve UTF-8. Postup funguje, už jsem to zkoušel. Problém je ale v tom, že těch html souborů je několik set a upravovat všechny pojednom je práce pro vraha. Takže bych raději použil nějaký příkaz nebo skript, který zadám jednou a už se mi to všechno upraví hromadně. Příkaz pro hromadný převod kódování html (textových) souborů a příkaz pro přepsání určitého řetězce znaků ve více html (textových) souborech hromadně. Existuje něco takového? A názvy souborů a adresářů aby zůstaly zachované. Komplikované to mám ještě tím, že v te složce, ve které mám ty html soubory, mám taky několik různých podadresářů a taky v nich jsou html soubory. Takže celou tu hromadu souborů bych potřeboval předělat.

Kde jsem vlastně k těm souborům přišel. Na http://www.jakpsatweb.cz/download.html jsem si stáhnul celý web Jak psát web.

Jsem kretén, který ví lautr hovno o Linuxu a o počítačích vůbec.

Odpovědi

12.3.2011 12:59 Fa & Bi | skóre: 65 | blog: Delfinárium
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Kódování upravíte např. pomocí iconv, hlavičku v souboru pak pomocí sedu.
12.3.2011 13:41 okar
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Odpověděl Filip. Jen bych dodal, že pokud je soubor správně označený tagem, tak je nesmysl konvertovat to do UTF-8. Kromě toho, že to bude kousek větší nic navíc nezískáte.
12.3.2011 14:12 DWD | skóre: 15 | blog: papiry
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů

Musím to převést do UTF-8, a to ikdyž ty soubory, které mám ve iso-8859-2, jsou označené správně tágem na iso-8859-2. Protože když mám soubory v jiném kódování, než je UTF-8, tak ikdyž mám správný tág, tak v dokumentu otevřeném v Konqueroru mi všechny URLy (na obrázky, na kaskádové styly, a hrefy a podobně) fungují správně, jenom pokud v názvu některáho nadřazeného adresáře nejsou mezery, háčky a podobně. A to ikdyž jde o nadřazený adresář, který není obsažený v URLech dokumentu. O tomto problému jsem už psal v blogu v článku HTML a kódování.

K sedu jsem se ještě nedostal, ale už jsem zkoušel skript na převod te znakové sady, ale má to ještě chybu: Původní soubor má původní název a překódovaný soubor má změněný název (za názvem připsanou jedničku) a já bych to chtěl spíš obráceně (původní název pro překódovaný soubor), aby mi nepřestalo fungovat to, že jednotlivé dokumenty navzájem odkazují. Nebo by dokonce nevadilo přepsat soubory úplně bez vzniku nového souboru. Původní soubory mám stejně pro jistotu někde okopírované.

Tady je ten skript.

for F in $(find $1 -iname "*.html")
do
        if [ -f $F ]; then
                iconv -f iso-8859-2 -t utf-8 $F > ${F}1
                mv ${F}1 $F
        fi
done
Jsem kretén, který ví lautr hovno o Linuxu a o počítačích vůbec.
12.3.2011 17:03 ollaf
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Pokud někdo používá nabodeníčka, mezery a podobně v URL, tak patří do pakárny. Je to zvěrstvo. Nevím sice, co to je Konqueror, zřejmě něco z KDE, ale ani se nedivím, že mu nechtějí fungovat odkazy z nabodeníčky v jiné sadě, než kterou má nastavenou. Až se přejde na UTF-32, tak to budete zase předělávat?
12.3.2011 17:47 Fa & Bi | skóre: 65 | blog: Delfinárium
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Snad do té doby bude Konqueror opraven a bude pro kódování znaků v souborovém systému používat znakovou sadu systému, nikoli stránky, kde odkaz našel. Jinak – co nabodeníčka nebo mezery, dnes se běžně používají názvy souborů, které nesplňují konvenci 8 znaků jména + 3 znaky přípony. Ó jaká hrůza.
12.3.2011 22:02 ollaf
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Netřeba být ironický. To, že filesystém umožňuje použít v názvu souboru cokoliv, včetně třeba ASCII 0x07, ještě neznamená, že je rozumné dávat znak pro zvonek do názvu souboru. Nevidím důvod proč se linuxhujeři musejí chlubit tím, že i v linuxu se soubor může jmenovat podle textu prvního odstavce dokumentu, jak to dělá jeden nejmenovaný textový procesor. Kdyby dodržovali primitivní zásady, tak tady nemusel být tento dotaz ani tato diskuse!!!

BTW, spíš než češtinu a mezery v názvech souboru bych uvítal, kdybych mohl mít v adresáři více různých souborů se stejným názvem. To nedovede ani linux, ani widle.
12.3.2011 23:15 Michal Kubeček | skóre: 69 | Luštěnice
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Uvítal? A jak byste si představoval, že by se to mělo chovat? Co by se mělo stát, když byste na takové jméno zavolal open(), execve(), stat(), unlink() atd.? Jméno souboru je identifikátorem, kterým se na něj odkazujete, takže je potřeba, aby bylo jednoznačné.
13.3.2011 00:12 ollaf
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Chovalo by se to normálně. Blbost je právě to, že je jméno souboru identifikátorem. Když mám deset verzí souboru, tak musím každou pojmenovat jinak. Přitom by se měly jmenovat stejně, lišit se jenom datem, velikostí a samozřejmě inody. Že si programátoři fs nedovedou představit, jak to vyřešit, to je jejich neschopnost. Volba jména souboru jako identifikátoru měla opodstatnění před čtyčiceti lety. Formát 8.3 názvu a číslovaní v extenzi, jak si pamatujeme z dosu v 1.0. Jenže dnes se soubor jmenuje třeba jako celý první půlstránkový odstavec v .docu. To je blbost sama o sobě, je zřejmé, že název je atribut patřící někam do metadat! Vsaďte se, že za pět let s tím přijde google jako s novou geniální myšlenkou.

Je to stejné, jako kdyby si někdo před padesáti léty vybral jako identifikátor souboru datum a creation time (proč ne, vždyť tenkrát nemohly mít dva soubory v jednom kompu stejný creation time). Dnes by jste mi pak na otázku, proč sakra nemohou mít dva soubory stejný čas odpověděl dotazem jak si představuju open() a execve().
13.3.2011 00:42 Michal Kubeček | skóre: 69 | Luštěnice
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Jenže to, co popisujete, se dá zařídit i jinak. A zase převratně nová myšlenka to není
13.3.2011 01:11 l4m4
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Pokud chceš databázi, ne souborový systém, tak používej databázi a vytvoř si indexy nad čímkoli, co si vymyslíš, napiš si k tomu KIOslave (z příkazové řádky to bude stejně nepoužitelné) a můžeš být happy. Nebo, když ti jde o ty .docy, se zeptej Microsoftu, kdy konečně vydá Longhorn -- má to v něm být jedna z hlavních fíčur.

Já ale naopak chci, aby /etc/shadow byl právě jeden a pro každého stejný soubor.
To je blbost sama o sobě, je zřejmé, že název je atribut patřící někam do metadat!
Ano, tato věta je blbost sama o sobě. Název souboru je identifikátor. Titulek wordovského dokumentu jsou náhodná metadata, která většina souborů nemá a která nemá smysl jakkoli korelovat s názvem souboru.
13.3.2011 01:35 lertimir | skóre: 52 | blog: Par_slov
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Právě neúspěch verzovacích file systémů je dobrý identifikátor toho, že většině tento přístup nevyhovuje. Jedna se základních vlastnosti souboru je jeho atomičnost. Tedy, že sám nese úplnou informaci. všechny pokusy vázat k němu externí metainformaci neuspěly, protože při přenosu mezi různými filesystémy, při kopírováními různými aplikacemi, při různých přenosech různými síťovými protokoly, by bylo nutné zaručit, že se metainformace mudou také korektně přenášet. Nemyslím si, že existuje síla, která by přiměla všechny se domluvit na kompatibilních metainformacích. jediná společně používaná vnější informace je název souboru jako jednoznačný identifikátor.

13.3.2011 06:38 Radovan
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Název souboru je "human interface", systém ho má někde v /dev/null, takže pokud se ti slovní pojmenovávání souborů nelíbí (nebo jsi terminátor), tak si je třeba čísluj, to se na některých systémech muselo dělat ještě v druhé půlce osmdesátých let, takže to nic převratně nového za pár let nebude. Možná tak pro žabáky co před pěti lety vstali z nočníku :-P
13.3.2011 11:35 ollaf
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Verzovací fs asi nejsou úplně to, co jsem měl na mysli. Také nestojím o to, mít více verzí /etc/shadow. Děkuji za diskusi.

Co se týče jednoznačnosti jména souborů, zvláště při přenosu mezi platformami, tak bych rád připomenul vfat! Linux používá čtyři způsoby, jak zobrazit jméno daného souboru (lower, Win95, winnt a mixed) a to ještě existuje krátká verze. A taky to jde. Zřejmě se vychází vstříc těm z nás, kteří nemají rádi pravidla a tvrdí, že dodržování zásad je ohrožením jejich osobních svobod. (Teda moc to nejde, protože od té doby, co existuje automout removable disků to různé distribuce připojují s různými parametry a výsledkem je směs souborů s různými velikostmi písmen - "KRATKY.JPG" vedle "Dlouhy nazev.jpg". To je na mrtvici. Hlavně, že nejsou zásady. A že se řeší prkotiny typu gnome-shell.)

Ostatně kolega měl na widlích na ploše několik souborů se stejným jménem. Nešly smazat, nešly přejmenovat a pokud se udělalo copy/paste tak se objevil další duplikát...

Já na svých fs budu nadále používat Nazvy_souboru_bez_hacku_a_mezer a nebudu muset neustále řešit nějaké input cp, output cp, vypalování atd. atd.
13.3.2011 07:40 Fa & Bi | skóre: 65 | blog: Delfinárium
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Pouze ASCII 8.3 je také primitivní zásada, kterou kdyby lidé dodržovali, neexistoval by tenhle dotaz. A co teprve kdyby přestali používat hloupé názvy souborů, a používali normálně číslo inode, tím by se vyřešilo mnoho dalších problémů. Jenže název souboru je identifikátor pro člověka, tak je přirozené, že si ho člověk bude chtít pojmenovat podle sebe, a ne dodržovat nějaké „zásady“, které jsou dobré leda tak pro počítač. Pokud je v nějakém programu chyba, je rozumné tu chybu opravit – ne dodržovat zásady, které zabrání potenciálně jakékoli chybě programu. Když budete takové zásady používat, nespustíte vůbec počítač – co když bude v OS chyba, že vám při bootování smaže všechna data… Ostatně unixové systémy umožňují v názvu souboru používat jakýkoli bajt kromě lomítka odjakživa.
13.3.2011 12:39 Michal Kubeček | skóre: 69 | Luštěnice
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Ostatně unixové systémy umožňují v názvu souboru používat jakýkoli bajt kromě lomítka odjakživa.

… a nulového …

12.3.2011 17:48 DWD | skóre: 15 | blog: papiry
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Pokud někdo používá nabodeníčka, mezery a podobně v URL, tak patří do pakárny. Je to zvěrstvo. Nevím sice, co to je Konqueror, zřejmě něco z KDE, ale ani se nedivím, že mu nechtějí fungovat odkazy z nabodeníčky v jiné sadě, než kterou má nastavenou.

Samozřejmě, že je pravda, že by se v URL html dokumentu neměly používat mezery, háčky a podobné blbosti. Proto, když si vytvářím vlastní html dokument, tak se takovým znakům v těch URLech vyhýbám. Ale mám vyzkoušené, že pokud mám ten html dokument v jiném kódování, než UTF-8, tak stačí, abych kterýkoliv nadřazený adresář pojmenoval názvem, obsahující mezery, háčky, dlouhé písmena a podobně, už je problém, a to ikdyž se jedná o adresář, který se v URL dokumentu neuvádí, ale o některý nadřazený adresář. Přesto se může způsobit, že ty url přestanou v některých prohlížečích fungovat (v mém případě v Konqueroru, zatímco v Mozille Firefoxu to nevadí). Příklad: Je stránka, která se jmenuje jmeno-1 a vedle ni složka, která se jmenuje jmeno1_soubory a v te složce je obrázek, které se jmenuje obraz.png. Ta stránka jmeno1, i ta složka jmeno1_soubory jsou umístěné ve společném adresáři nova-slozka. V te stránce je relativní odkaz na ten obrázek <img src="jmeno1/obraz.png">. Tento odkaz funguje správně. Pokud ale tu stránku mám v jiném kódování, než UTF-8, tak ikdyž tag meta skutečnému kódování odpovídá, už je problém, pokud složku nova-slozka přejmenuji například na nová složka nebo jinak s nevhodnými znaky, nebo kterýkoliv ještě nadřazenější adresář přejmenuji s těmi nevhodnými znaky. To potom Konqueror neumí zobrazit ten html soubor tak, aby se načetl i ten obrázek. A to ikdyž s nevhodnými znaky pojmenuji složku, která se v URL dokumentu neuvádí. A problém se netýká jenom obrázků.

Přestože by v těch stažených stránkách neměly být URL s nevhodnými znaky, chtěl jsem ty stránky předělat do UTF-8, abych předešel problému, který jsem popsal.

Jsem kretén, který ví lautr hovno o Linuxu a o počítačích vůbec.
12.3.2011 22:04 ollaf
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Děkuji za vysvětlení.

Konqueroru a KDE se budu i nadále vyhýbat...
13.3.2011 00:10 2X4B-523P | skóre: 37 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
nepoužívej ani Linux, tam se minimálně jedna chyba taky najde... vlastně nejlepší bude HW bez systému...
13.3.2011 00:14 ollaf
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Huš!
13.3.2011 06:41 Radovan
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Myslím že třídička děrných štítků se dneska už bude těžko shánět ;-)
14.3.2011 13:20 Sten
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Není důvod nepoužívat v URL ne-ASCII znaky, URL to umožňuje a třeba Wikipedie s tím nemá nejmenší problém. Problém je ale v tom, že zatímco HTTP URL je vždy v UTF-8, tak file URL může být v libovolné kódové stránce a pro prohlížeč může být obtížné detekovat, kterou má použít.

Btw. který Konqueror máte? Teď jsem to zkusil v KDE 4.6.1 a tam to funguje tak, že Koqueror použije kódování z locales, takže váš problém nenastane.
Bilbo avatar 13.3.2011 15:26 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Třeba wikipedie používá komplet unicode v URL vcelku všude (tam ale může být problém, že bez nabodeníček by to nemuselo být jednodnačné, např. Prace (což je vesnice na moravě) vs. Práce) - a myslím si, že kdyby to tak nepoužívali, museli by řešit pak asi horší problémy.

Ale je spousta situací, kdy je lepší se nebodeníčkům v názvech/url vyhnout.

Osobně u sebe v názvech souborů nabodeníčka nepoužívám a pokud mi něco zvnějšku dorazí s nabodeníčky, pustím na to detox a nabodeníčka jsou fuč :)
Big brother is not watching you anymore. Big Brother is telling you how to live...
pavlix avatar 13.3.2011 22:17 pavlix | skóre: 48 | blog: pavlix
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Prace (což je vesnice na moravě) vs. Práce)
Mechanismus na řešení homonym už wikipedia dávno má, takže by se jen vztáhnul i na toto. Ale moc elegantní by to nebylo.
pavlix avatar 12.3.2011 16:01 pavlix | skóre: 48 | blog: pavlix
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Konverze do UTF-8 se hodí už jen pro budoucí úpravy, člověk pak není omezen nedostatečnou znakovou sadou a nemusí používat unikódové znakové entity.
13.3.2011 00:40 lertimir | skóre: 52 | blog: Par_slov
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
součástí českého TeXu je jíž asi 15 let prográmek cstocs který provádí jakékoliv převody mezi českými kódováními jaké jsem kdykoliv potřeboval. Neudělá vyměnu tagu meta. To by šlo udělat v awk nebo v sed nebo myslím že něco takového by se dalo napsat i perlu

perl -pi -w -e 's/search/replace/g;' *.html
13.3.2011 11:02 DWD | skóre: 15 | blog: papiry
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Nebude rozumnější, když všechny soubory a složky budu pojmenovávat bez mezer, háčků, dlouhých písmen a tak dále? Neměl bych si zkontrolovat v počítači v uživatelském adresáři všechny soubory a složky, jaké mají názvy a nevhodné znaky opravím? Dá to hodně práce, ale možná se vyhnu problémům, které by asi mohly někdy nastat. Co když svoje dokumenty, které si vypálím jako data, budu prohlížet v jiném počítači, ve kterém aplikace a prostředí můžou být nastavené na jinou znakovou sadu, než v mojem počítači. Potom budou soubory a složky vypadat nepřehledně, snad nepůjdou ani otevřít, nepůjdou kopírovat, pálit a podobně. Částečně jsem se s podobným problémem už setkal. Například jsem si něco stáhnul z Ulož to, rozbalil a získal jsem hromadu souborů a složek, jenomže názvy některých souborů a složek obsahovaly nevhodné znaky, které pravděpodobně v počítači toho, kdo to na Ulož to uložil, byly normálně čitelné, zatímco u mě některé názvy čitelné nebyly, zřejmě používal jinou znakovou sadu, než já. (Jakou znakovou sadu používal, jsem mohl zjistit pomoci příkazu, jako ls /cesta/ke/stazenym/souborum > vypis.txt a potom zjistit, v jaké znakové sadě se mi vytvořil ten textový soubor s výpisem.) Názvy stažených souborů a složek jsem musel opravit, protože jinak vypadaly nepřehledně, blbě se vypalovaly, nešly kopírovat na flashku a podobné problémy.
Jsem kretén, který ví lautr hovno o Linuxu a o počítačích vůbec.
13.3.2011 11:08 Fa & Bi | skóre: 65 | blog: Delfinárium
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Souborový systém ISO 9660 v základní verzi znaky s diakritiky vůbec nepodporuje, rozšíření Joliet naopak definuje, že se jména souborů ukládají v UCS-2. Takže zrovna v případě vypálení je problém s názvy souborů minimální, protože tam je způsob kódování znaků jasný.
13.3.2011 12:23 DWD | skóre: 15 | blog: papiry
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Příkaz sed -i 's/stare/nove/g' soubor nahradí všechny slova staré slovy nové. Vyzkoušel jsem to zatím u jednoho souboru a funguje to. Ale co když budu chtít nahradit slova, které obsahuje i lomítka a podobně? To by se potom mohlo mydlit s lomítkama, které jsou součásti původního příkazu. Například budu chtít všechny slova stary/papir nahradit slovy nove/papiry. Co potom? Půjde to vůbec? Třeba takto to půjde asi těžko: sed -i 's/stary/papir/nove/papiry/g' soubor
Jsem kretén, který ví lautr hovno o Linuxu a o počítačích vůbec.
13.3.2011 13:26 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Jsou dvě možnosti, buď escapovat lomítka, nebo použít jiný znak, který se ve výrazech moc nevyskytuje (lze téměř cokoliv, já často volím čárku, někdo dává hash (#) apod.)
sed -i 's/start\/papir/nove\/papiry/g' soubor
sed -i 's,start/papir,nove/papiry,g' soubor
sed -i 's#start/papir#nove/papiry#g' soubor
13.3.2011 14:12 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
sed -e 's/stary\/papir/novy\/papir/g' subor

Mozno by bola vhodna prirucka k sed-u. ;)

13.3.2011 14:14 Patrik Uhrak | skóre: 31 | blog: pato
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů

Ospravedlnujem sa, ash to tu vysvetlil a najma pre polhodinou. Nedal som refresh stranky. :)

Bilbo avatar 13.3.2011 15:30 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Takže zrovna v případě vypálení je problém s názvy souborů minimální, protože tam je způsob kódování znaků jasný.
Teoreticky, ovšem v praxi když někdo něco vypaluje, šance že vypalovací program z lokální místní znakové sady (dnes obvykle UTF-8, ale dříve tam mohlo být leccos) to do toho UCS-2 převede dobře (t.j. ne jako paznaky) se ani zdaleka neblíží 100% (byť je to lepší než kdysi, kdy správně vypálená diakritika byla spíše vyjímka)
Big brother is not watching you anymore. Big Brother is telling you how to live...
pavlix avatar 13.3.2011 22:18 pavlix | skóre: 48 | blog: pavlix
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Ono i obyčejné NTFS je v tomto směru oproti linuxovým systémům úžasně napřed.
13.3.2011 22:59 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
V jakém směru? Nějaká souvislost s vypalováním, ISO 9660 či Joliet? :D Nechápu lidi co mají v dnešní době problém s diakritikou, to musí být v hlavě.
pavlix avatar 13.3.2011 23:08 pavlix | skóre: 48 | blog: pavlix
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Nechápu lidi co mají v dnešní době problém s diakritikou, to musí být v hlavě.
Běžné linuxové FS nemají definované kódování názvů souborů. Lze se maximálně tvářit, že mají (UTF-8 je přece už všude, ne?). NTFS má definované kódování názvů souborů.

Jakákoli souvislost s 9660 je čistě náhodná.
14.3.2011 02:28 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Jo tohle, ano, toto omezení NTFS opravdu obsahuje. Osobně jsem rád, že mi nikdo nepřikazuje, jaké je to jediné správné kódování™, které mám používat.
14.3.2011 08:04 Fa & Bi | skóre: 65 | blog: Delfinárium
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
UTF-16 není zas tak marné kódování, dají se v něm uložit všechny znaky Unicode. To je dost volné omezení. Jinak by ale nebylo nutné, aby linuxové souborové systémy měly nějaké kódování nastavené napevno – úplně by stačilo, kdyby použité kódování bylo uloženo někde v metadatech souborového systému. Momentálně se název souboru bere jen jako posloupnost bajtů, a je na aplikaci (nebo knihovně), v jakém kódování ty bajty bude interpretovat.
14.3.2011 09:27 Michal Kubeček | skóre: 69 | Luštěnice
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
dají se v něm uložit všechny znaky Unicode

A to je také prakticky jediná jeho výhoda. Jinak UTF-16 téměř unikátním způsobem sdružuje téměř všechny nevýhody ostatních kódování.

14.3.2011 13:26 Sten
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Kódování v linuxových souborových systémech je také dané: bere se z locales. Proto taky linuxové souborové systémy nejsou úplně vhodné pro výměnná média, tam je lepší (i z dalších důvodů) UDF.
14.3.2011 15:03 Fa & Bi | skóre: 65 | blog: Delfinárium
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Kódování v linuxových souborových systémech je také dané: bere se z locales.
Tak to je v praxi, ale je to špatně – chceme „kódování souborového systému“, ale máme „kódování aktuálně spuštěného programu“. Můžete na jednom systému spustit programy s různými locale, názvy souborů jsou ale na disku typicky uloženy v jednom kódování. Druhá možnost by byla ukládat kódování názvu souboru do rozšířených atributů, to mi ale připadá zbytečné – nenapadá mne reálný případ, kdy by bylo vhodné mít v jednom souborovém systému různá kódování názvů souborů.
14.3.2011 16:19 Sten
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Na druhou stranu by to znamenalo, že by se každý dotaz na souborový systém musel prohnat přes iconv (asi do UTF-8) a stejně tak všechna jména souborů. Takže by to mohlo dopadnou takhle:
open("jméno v ISO", "r")
 -> iconv "jméno v ISO" "jméno v UTF"
 -> syscall(open)
    -> kódování souborového systému = ISO
    -> iconv "jméno v UTF" "jméno v ISO"
A máte tu dva překlady, které jsou ale úplně zbytečné.

Btw. dneska stejně všechny distribuce používají UTF-8, takže se ukazuje, že je to zbytečné.
pavlix avatar 15.3.2011 04:18 pavlix | skóre: 48 | blog: pavlix
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Kódování v linuxových souborových systémech je také dané: bere se z locales.
Protiřečíš si.
Bilbo avatar 14.3.2011 01:56 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Osobně s diakritikou dnes problém nemám dokud se soubor drží na linuxových systémech (XFS, EXT3), případně na NTFS (externí disky), tak to prostě funguje. Ale jakmile nahraju soubor na flashku (kde je FAT32) tak se obvykle diakritika rozmrví.
Big brother is not watching you anymore. Big Brother is telling you how to live...
14.3.2011 02:39 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
V zásadě by mělo stačit flašku montovat se správnými parametry, ne? Ale chápu že i pokud to problém řeší tak to může být obtěžující mount -o codepage=852,iocharset=utf8 /dev/flaška /mnt/flaška.
Bilbo avatar 14.3.2011 03:42 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Teoreticky jo, ale pokud ty správné parametry nepoužije i druhá strana (což může být jednak linux, jednak třeba i Mac nebo windowsy, občas i různá zařízení typu televize nebo video s USB portem, kde není naprosto žádná kontrola nad mount parametry - pokud tam uvnitř teda vůbec je Linux) tak často diakritika končí zmršená.

Pokud potřebuju výjimečně někam dostat soubory i s diakritikou, tak je zabalím něčím (např. 7-zip) u čeho vím, že to s unicode názvy nemá problém, ale jinak radši bez diakritiky.
Big brother is not watching you anymore. Big Brother is telling you how to live...
15.3.2011 06:38 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Aha, zmiňoval jsi že problém vznikne "jakmile nahraju soubor na flašku", tak jsem na to reagoval. Samozřejmě pokud Ti ho někdo donese zmršený tak to je jiná.
Bilbo avatar 15.3.2011 17:18 Bilbo | skóre: 29
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Tím jsem myslel, že když ho nahraju od sebe, tak ho tam ještě vidím dobře, ale jakmile je ta flashka u někoho jiného, tak tam už je to vidět blbě. I když opačně (na cizím systému někdo nahraje na moji flashku soubor z diakritikou a já pak u sebe vidím paznaky) to bohužel "funguje" často stejně.
Big brother is not watching you anymore. Big Brother is telling you how to live...
13.3.2011 13:48 lertimir | skóre: 52 | blog: Par_slov
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
přece původní dotaz je: Jak změnit obsah souborů z jednoho kódování na jiný batchovým způsobem, včetně meta tagu u html? Ne jak změnit názvy souborů.
13.3.2011 13:42 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Doporučil bych to udělat nějak jednoduše, čili:
  1. celý adresář zkopírovat (použijte mc nebo jiný váš oblíbený filemanager) třeba do adresáře novyroot
  2. pak na všechny soubory v tom adresáři poštvat find spolu s recode nebo iconv (podle toho co máte po ruce)
    find novyroot -type f -exec recode iso-8859-2..utf-8 {} \;
    nebo
    find novyroot -type f -exec iconv -f iso8859-2 -t utf-8 {} \;
  3. nakonec na soubory o kterých víte že chcete změnit tag (lze i na všechny, pokud tam tag není tak se nic nestane) použít find v kombinaci se sedem
    find novyroot *.html -exec sed -i -e "s/starytag/novytag/" {} \;
Nezapomeňte než začnete na zálohu, kterou nebudete mazat dřív, než budete mít jistotu že to máte dobře :)
13.3.2011 13:46 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Hromadná úprava textových souborů
Asi bych dal přednost recode, u iconv byste asi musel vytvářet nový soubor (v novém kódování) čili to je v mém "manuálu" špatně. recode překódovává in place takže pro vás bude jednodušší.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   Powered by Hosting 90 Server hosting
© 1999-2013 Argonit s. r. o. Všechna práva vyhrazena.