Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Pave 26. 05. 2015, 19:42:43

Název: Odstranění (cr)lf v textovém souboru
Přispěvatel: Pave 26. 05. 2015, 19:42:43
Dobrý den, mám prosbu, se kterou si nevím rady. Mám textový soubor (tabulka v HTML), který vypadá takto (zjednodušeně):

...
<table>
<tr><td>Polozka1</td><td>Polozka2</td></tr>
<tr><td>Polozka3</td><td>Polozka4
</td></tr>
<tr><td>Polozka5</td><td>Polozka6</td></tr>
<tr><td>Polozka7</td><td>Polozka8
</td></tr>
<tr><td>Polozka9</td><td>Polozka10
</td></tr>
</table>
...

Problém je, že některé řádky nekončí </tr> na stejném řádku jako jsou položky. Potřeboval bych výstup takový:

<table>
<tr><td>Polozka1</td><td>Polozka2</td></tr>
<tr><td>Polozka3</td><td>Polozka4</td></tr>
<tr><td>Polozka5</td><td>Polozka6</td></tr>
<tr><td>Polozka7</td><td>Polozka8</td></tr>
<tr><td>Polozka9</td><td>Polozka1</td></tr>

Prosím o nakopnutí. Děkuji, Pavel.
Název: Re:Odstranění (cr)lf v textovém souboru
Přispěvatel: j 26. 05. 2015, 20:35:28
Hele udelat to jde pomerne trivialne, zalezi co mas za nastroje - z shellu urcite nejakej replace (trebas grep), pripadne ve widlich trebas pspad, ale zajimalo by me, k cemu ti to bude dobry? Libovolnymu zobrazovadlu (browseru) to je jedno a pro parsovani je to taky jedno.

A urcite existuje i hromada vsemoznych formatovacich webu, pokud to ma byt jednorazovka a nejde o zadny tajny data. Dokonce bych rek, ze lecjakej browser ti to v podobe zdrojaku preformatuje.
Název: Re:Odstranění (cr)lf v textovém souboru
Přispěvatel: Pave 26. 05. 2015, 20:48:23
Potřebuju to v bashi (sed, awk, ...) pro další dávkové zpracování. Děkuji, Pavel.
Název: Re:Odstranění (cr)lf v textovém souboru
Přispěvatel: Ziktofel 26. 05. 2015, 20:54:03
napada me sedem odmazat \r a \n a pak je pridat za kazdej </tr>
Název: Re:Odstranění (cr)lf v textovém souboru
Přispěvatel: j 26. 05. 2015, 21:08:10
Uricte to de zmastiti do jednoho, ale z duvodu vyuky ... ;D


cat soubor | sed ':a;N;$!ba;s/\n//g' | sed 's/<tr/\r\n<tr/g' | sed 's/<\/table/\r\n<\/table/g'
Název: Re:Odstranění (cr)lf v textovém souboru
Přispěvatel: wamba 26. 05. 2015, 22:40:56
nebo
Kód: [Vybrat]
cat soubor |perl -pe 's/[^>]\K\r\n//g'odstraň nové řádky, kterým nepředchází >
Název: Re:Odstranění (cr)lf v textovém souboru
Přispěvatel: pistal 27. 05. 2015, 07:37:08
Ja pouzivam
fromdos <dos.txt >unix.txt