On Wed, 17 Mar 2004, Peter Tyler wrote:

> Hi
>  I'm trying to search and replace some "cr" and  "lf"  characters in a 
> text file (comma separated).
> I want to substitute the   crlf"  characters (that is carriage return, 
> line feed, double quote.)    for  cr|lf"    (that is carriage return, 
> pipe, line feed, double quote)
> 
> The reason I am trying to do this is that I have a text (csv) file out 
> of Outlook that has carriage return line feeds in the address fields,  
> and this is  causing the other fields to become miss aligned when 
> reading into my open office spread sheet. By changing the record 
> separator, I can then go through and change the inconsistencies within 
> the address field, then just change the record separator back to crlf.
> 
> I have been trying the following   sed 's/\x0D\x0A\"/\x0D|\x0A\"/g'  but 
> it does not seem to pick up on the hex chars at all. So nothing is changed.
> 
> Does anyone know an easier way of doing this?  I tried hexedit but could 
> find a global "search and replace"  function.

Not quite the solution you're after but wouldn't it be a whole lot easier 
to just load the XLS file into OpenOffice?

Apart from that the problem with sed is it's going to see the 0x0A as a 
new line no matter what (had a quick look for an option to turn this off). 
Perhaps you can do this:-

cat file | tr "\n" "\f" | sed -e 's/\r\f\"/\r\|\f\"/g' | tr "\f" "\n" 
>newfile

The \f is a form feed and is unlikely to be in the text.

-- 
---<GRiP>---
Electronic Hobbyist, Former Arcadia BBS nut, Occasional nudist, 
Linux Guru, SLUG/AUUG/Linux Australia member, Sydney Flashmobber,
BMX rider, Walker, Raver & rave music lover, Big kid that refuses
to grow up. I'd make a good family pet, take me home today!
        Do people actually read these things?


-- 
SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/
Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html

Reply via email to