使用粘贴命令加入多个字符分隔符

div*_*gon 6 linux unix shell paste

我有一个基于参数生成的文件,它具有以下内容。

2012-12-31
2012-12-30
2012-12-29
Run Code Online (Sandbox Code Playgroud)

现在,这些实际上是用于 hive 查询的日期分区。所以,我想在我的 hive 查询中使用它们,我在WHERE子句中指定这些分区中的每一个。像下面这样

 WHERE log_date IN ('2012-12-31','2012-12-30', '2012-12-29')
Run Code Online (Sandbox Code Playgroud)

所以,我期待从输出paste

 2012-12-31','2012-12-30','2012-12-29
Run Code Online (Sandbox Code Playgroud)

我正在使用以下内容,但我认为该-d参数是一个分隔符列表,而不是一个完整的分隔符。

paste -sd"','" datefile
Run Code Online (Sandbox Code Playgroud)

知道我该怎么做吗?

Gur*_*uru 4

使用 sed 并粘贴在一起:

$ sed "s/.*/'&'/" file | paste -sd,
'2012-12-31','2012-12-30','2012-12-29'
Run Code Online (Sandbox Code Playgroud)

  • 好的。我也用过类似的东西。我用````paste```` 添加了一个分隔符,然后使用````sed```` 将其替换为实际的分隔符。 ````paste -sd"," 日期文件 | sed "s/\,/'\,'/g"```` (2认同)