8

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?

Andrea
  • 1,516
  • 4
  • 17
  • 19
divinedragon
  • 252
  • 4
  • 9

2 Answers2

4

Using sed and paste together:

$ sed "s/.*/'&'/" file | paste -sd,
'2012-12-31','2012-12-30','2012-12-29'
Guru
  • 1,211
  • 9
  • 6
  • 2
    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 Jan 17 '13 at 13:11
0

Try:

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