![使用粘贴命令连接多个字符分隔符](https://linux22.com/image/1347286/%E4%BD%BF%E7%94%A8%E7%B2%98%E8%B4%B4%E5%91%BD%E4%BB%A4%E8%BF%9E%E6%8E%A5%E5%A4%9A%E4%B8%AA%E5%AD%97%E7%AC%A6%E5%88%86%E9%9A%94%E7%AC%A6.png)
我有一个根据参数生成的文件,它有以下内容。
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)')"