Rich Shepard wrote:
> On Tue, 25 Jan 2011, Sam Hart wrote:
>
>   
>> awk '{split ($1, a, ","); split (a[4], b, "/"); printf
>> "%s,%s,%s,%s-%s-%s,%s,%s,%s,%s\n", a[1], a[2], a[3], b[3], b[1], b[2],
>> a[5], a[6], a[7], a[8]; }'
>>     
>
>   
>> Give it a try, refine it (because it's fugly), your mileage may vary,
>> yadda yadda...
>>     
>
> Sam,
>
>    I'm stuck on the 'yadda yadda' part. I've looked in my copy of 'sed & awk'
> by Dougherty and Robbins without seeing the answer to two questions that
> have come up.
>
>    Here's another line where one field is a string with an embedded comma.
> Awk takes that as the field separator ignoring all double quotes in the
> input line:
>
> NULL,"96-A001787","BC-0.5",6/25/1996,"Alkalinity, Bicarbonate",212,"mg/L 
> CaCO3",NULL
>
> The script output therefore is:
>
> NULL,"96-A001787","BC-0.5",1996-6-25,"Alkalinity,,,
>
>    Second question whose answer I must have missed in the book is how to
> surround the reformatted date in double quotes. The whole printf string is
> quoted; do I escape internal quotes so the printf statement reads,
>
> "%s,%s,%s,\"%s-%s-%s\",%s,%s,%s,%s\n" ?
>
> Thanks,
>
> Rich
>   
Rich Shepard
(1) Comma within literal string ... when saving the file from OOo, 
choose some more appropriate field separator ... option include , : ; 
tab space
(1.1) or it could be saved as fixed width ... either way, I would still 
vote for AWK/GAWK
(1.1.1) in this case one would use substr() to extract the desired fields
(2) printf:  yes, escape the internal double quotes with a backslash
Hope that helps
Regards
Fred James


_______________________________________________
PLUG mailing list
[email protected]
http://lists.pdxlinux.org/mailman/listinfo/plug

Reply via email to