Odstranění (cr)lf v textovém souboru

Pave

Odstranění (cr)lf v textovém souboru
« kdy: 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.


j

Re:Odstranění (cr)lf v textovém souboru
« Odpověď #1 kdy: 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.

Pave

Re:Odstranění (cr)lf v textovém souboru
« Odpověď #2 kdy: 26. 05. 2015, 20:48:23 »
Potřebuju to v bashi (sed, awk, ...) pro další dávkové zpracování. Děkuji, Pavel.

Re:Odstranění (cr)lf v textovém souboru
« Odpověď #3 kdy: 26. 05. 2015, 20:54:03 »
napada me sedem odmazat \r a \n a pak je pridat za kazdej </tr>

j

Re:Odstranění (cr)lf v textovém souboru
« Odpověď #4 kdy: 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'


wamba

Re:Odstranění (cr)lf v textovém souboru
« Odpověď #5 kdy: 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í >

pistal

Re:Odstranění (cr)lf v textovém souboru
« Odpověď #6 kdy: 27. 05. 2015, 07:37:08 »
Ja pouzivam
fromdos <dos.txt >unix.txt