On 3/10/2008 7:26 PM, Tiago Peczenyj wrote:
> On 10 mar, 21:20, Radu <raduco...@[EMAIL PROTECTED]
> wrote:
>
>>Hi guys,
>>
>>From a .csv file, I want to extract the last field (say it's $15, or,
>>I guess, $NF) and make it like:
>>'12345', '23456', '34567' (comma separated strings).
>>The purpose is to use the list in a select request in the WHERE clause
>>(WHERE field IN ('12345', '23456', '34567').
>>The IN range would be therefore the file the AWK will sent the values
>>to.
>>
>>Thanks,
>>
>>Radu
>
>
> try a awk file like this:
> BEGIN{ printf("(WHERE field in ("); }
> { printf("'%s'",$NF); }
> END{ printf(")"); }
printf is a language construct, not a function, so all those spurious
brackets
are misleading at best. You also have some redundant semi-colons, are
missing
the final newline, and are missing the comma followed by a space between
each
entry in the output list. This would solve those problems:
BEGIN{ printf "(WHERE field in (" }
{ printf "%s'%s'",sep,$NF; sep=", " }
END{ print ")" }
Since the OP didn't provide any sample input, I'm not sure that's the
right
solution though...
Ed.


|