Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Lukáš 10. 07. 2012, 20:15:26
-
Zdravím, mám takový problém: Mám textový soubor, který je blbě udělaný. Každý řádek má po určitém počtu znaků tvrdý řádkový zlom. Potřebuji tyto ruční zlomy zrušit, ale zároveň potřebuji zachovat odstavce. Ty začínají tradičně dvěma mezerami na začátku řádky.
Zadání tedy je: smaž konce řádků, ale ne v místech, kdy další řádek začíná dvěma mezerami.
Dá se to nějak jednoduše udělat? Řeším to u několika e-knih, které jsou takhle špatně naskenované a nedá se s nimi pak rozumně pracovat. Díky
-
Tady jsem to řešil:
http://www.pepak.net/e-books/prevod-z-txtpdb-do-html/
-
Se sedem se mi nechce párat :)
python -c 'import sys,re; print re.sub("\n(?! )"," ",sys.stdin.read(),0,re.MULTILINE)' < file
Za vykřičníkem jsou ty dvě mezery.
-
v perlu třeba takhle
perl -00 -nE 'tr/\n/ /;say ' soubor.txt
-
v perlu třeba takhle
perl -00 -nE 'tr/\n/ /;say ' soubor.txt
A kde jsou tam ty dvě mezery?
-
A kde jsou tam ty dvě mezery?
blbě jsem četl
(to je tak, kdy se neuvede příklad a ja čtu jen na půl)
ta třeba mě napadá
perl -00 -pE 's/\n(?! )//g' soubor
což asi bude ekvivalent toho řešení v pythonu
popř.
perl -00 -pE 's/(\n )|\n/$1/g' soubor
nebo i
perl -00 -pE 's/\n//g;s/ /\n /g' soubor
což není úplně podle zadání, ale i tak by to mohlo postačovat