Using paste command to join with multiple character delimiter

5

2

I have a file which gets generated based on the arguments and it has the following contents.

2012-12-31
2012-12-30
2012-12-29

Now, these are actually date partitions for hive query. So, I want to use them in my hive query where I specify each of these partitions in WHERE clause. Something like below

 WHERE log_date IN ('2012-12-31','2012-12-30', '2012-12-29')

So, I am looking the output from paste as

 2012-12-31','2012-12-30','2012-12-29

I am using the following, but I think the -d parameter is a list of delimiter and not one complete delimiter.

paste -sd"','" datefile

Any idea how can I do that?

divinedragon

Posted 2013-01-17T10:47:41.140

Reputation: 202

Answers

3

Using sed and paste together:

$ sed "s/.*/'&'/" file | paste -sd,
'2012-12-31','2012-12-30','2012-12-29'

Guru

Posted 2013-01-17T10:47:41.140

Reputation: 951

Nice. I too used something similar. I added a single delimiter with paste and then used sed to replace it with actual one. paste -sd"," datefile | sed "s/\,/'\,'/g" – divinedragon – 2013-01-17T13:11:55.843

0

Try:

echo  "WHERE log_date IN ('$(sed -e :a -e "$!N; s/\n/','/; ta" datefile)')"

arober11

Posted 2013-01-17T10:47:41.140

Reputation: 396