Portál AbcLinuxu, 16. května 2024 04:36


Dotaz: sed - vymazání znaků konce řádku

20.4.2008 14:51 l_n | skóre: 15 | Bednárec
sed - vymazání znaků konce řádku
Přečteno: 832×
Odpovědět | Admin
Píšu jednoduchý skript, který filtruje takové hodně blbě zformátované stránky v .txt souboru a má z toho udělat .csv soubor ve tvaru:
datum,jmeno,cislo1,cislo2,cislo3,cislo4....
datum,jmeno,cislo5,cislo6,cislo7,cislo8....
Teď už mám výstup:
#jmeno,
cislo1,
cislo2,cislo3,cislo4....
#jmeno,
cislo1,
cislo2,cislo3,cislo4....
a za boha nemůžu přijít na to, jak spojit ty řádky nejlépe pomocí sed do jednoho řádku vždy mezi znaky #.

Dík za případnou radu
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.4.2008 15:00 Ash | skóre: 53
Rozbalit Rozbalit vše Re: sed - vymazání znaků konce řádku
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed -n -e "/#/{N;N;s/\n//gp}" filename

Tohle konkrétně vyžaduje GNU sed nebo takový který umí \n.
20.4.2008 15:15 l_n | skóre: 15 | Bednárec
Rozbalit Rozbalit vše Re: sed - vymazání znaků konce řádku
Díky. Teď koukám, že to jde i příkazem tr.
.... | tr -d '\012' | tr '#' '\012'
Ale nevypadá to tak hezky :).

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.