punklrokk has asked for the wisdom of the Perl Monks concerning the following question:

Update! Solved w/ split function! No need to approve ;)

So I have an executive with a ridiculous contact list (>16000 contacts) and the problem I have would be solved using sed or awk, but I don't have a box I can code on at this time.

I need to take a CSV of an exported Outlook contact list, then find all the lines with and 3 digit area code in the (716) format and replace it with +1-716.

Once I do this, I need to rewrite the line, and put it in a new file.

I can do all of the writing, reading and regexp work, but what's the best way to grab say $5 like in awk?

Then I can modify it. It will be like $15 though, and it could happen more than once in a line.

Any suggestions are greatly appreciated, as I have a million other things to do, like all of you, I'm sure ;)

Thanks guys!

JP Bourget (punklrokk) MS Information and Security Rochester Institute of Technology Rochester, NY

Replies are listed 'Best First'.
Re: phone list modification
by bobf (Monsignor) on Oct 23, 2006 at 05:17 UTC

    Please note that the format that Outlook produces can have issues with embedded quotes and/or commas (see Regex with malformed CSV files for an example).

    Instead of trying to parse the file yourself, one of the CSV-parsing modules may be helpful. I've heard good things about Text::xSV, Text::CSV_XS, Text::CSV.

    Finally, don't forget about Super Search. :-)

    HTH

    Update: FWIW, I approved your question so unregistered users (and any monk that wants to see only moderated content) could view it. Your question might help someone else that is having a similar issue.