l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
November 4: Social gathering
Next Installfest:
TBD
Latest News:
Oct. 10: LUGOD Installfests coming again soon
Page last updated:
2003 Oct 16 20:14

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] CSV with rogue EOLs
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] CSV with rogue EOLs



On Thu, Oct 16, 2003 at 06:24:32PM -0700, Bill Kendrick wrote:
> 
> Has anyone got a Perl or sed script handy that can take a CSV
> (comma-separated values) text file like this:
> 
>   "1234","Hello","ABCD"
>   "1235","Hello
>   there","XYZ"
>   "1236","Goodbye","LLLL"
> 
> and make it look like this:
> 
>   "1234","Hello","ABCD"
>   "1235","Hello there","XYZ"
>   "1236","Goodbye","LLLL"
> 
> e.g., wherever there are EOLs _within_ fields (between quotes), have it
> replace those with something (in my example above, just a space)

Let's see if this works. (Warning: use at own risk!)

while(<>)
{
        $line = $_;
        chomp $line;
        while (scalar($line =~ s/([^\\]")/$1/g ) % 2)
        {
                $line .= <STDIN>;
                chomp $line;
        }
        print "$line\n";
}

I tested this on the example you provided, and it seems to work. 
 
> I'm unfortunately dealing with Excel, and even it is too stupid to remember
> when its within a field, so you end up with a spreadsheet like this:
> 
>   1234  | Hello   | ABCD
>   1235  | Hello   | [blank]
>   there | XYZ     | [blank]
>   1236  | Goodbye | LLLL
> 
> I've dealt with this issue before, but it was years ago.  And I used C. ;^)
> 
> Thx!
> 
> -bill!
> 
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech

-- 
Samuel Merritt
OpenPGP key is at http://meat.andcheese.org/~spam/spam_at_andcheese_dot_org.asc
Information about PGP can be found at http://www.mindspring.com/~aegreene/pgp/

Attachment: pgp00014.pgp
Description: PGP signature



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
Appahost Applications
For a significant contribution towards our projector, and a generous donation to allow us to continue meeting at the Davis Library.