Sed: jak nahradit konce řádků

Dneska migruji jednu databázi z MySQL do Oracle přes CSV soubory pomocí oraklovského nástroje SQL*Loader. V CSV souborech je několik nečistot, které jsem musel odstranit a jedna taková specialitka. SQL*Loader neumí (resp. já nevím jak to nastavit) načíst textové hodnoty obsahující zařádkování. Takže je potřebuju vyházet, jenže MySQL při exportu do CSV dělá zařádkování jako \LF (tedy lomítko a zařádkování). Sedem jsem se toho nemohl zbavit – protože pracuje implicitně po řádcích. Ten magický příkaz nahrazení dané kombinace mezerou (a spojením řádků v jeden) tedy je (tuhle magii jsem vygooglil a netuším, proč to funguje):

# sed -e :a -e '$!N;s/\\\n/ /;ta' -e 'P;D'

Diskuze

If you can't read the letters on the image, download this .wav file to get them read to you.
pridej.cz
blog/sed_jak_nahradit_konce_radku.txt · Poslední úprava: 29.05.2008 09:04 (external edit)
Creative Commons License Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0