我有一个根据参数生成的文件,它有以下内容。
2012-12-31
2012-12-30
2012-12-29
现在,这些实际上是 Hive 查询的日期分区。因此,我想在我的 Hive 查询中使用它们,并在子句中指定每个分区WHERE
。如下所示
WHERE log_date IN ('2012-12-31','2012-12-30', '2012-12-29')
paste
因此,我正在寻找
2012-12-31','2012-12-30','2012-12-29
我正在使用以下内容,但我认为-d
参数是分隔符列表而不是一个完整的分隔符。
paste -sd"','" datefile
知道怎样做吗?
答案1
同时使用 sed 和 paste:
$ sed "s/.*/'&'/" file | paste -sd,
'2012-12-31','2012-12-30','2012-12-29'
答案2
尝试:
echo "WHERE log_date IN ('$(sed -e :a -e "$!N; s/\n/','/; ta" datefile)')"