如何在 hive 中的 csv 文件名中包含 shell 变量

问题描述 投票:0回答:1

我正在运行一个脚本,该脚本将自动每季度运行一次,因此我想在此脚本末尾的 csv 输出名称中包含动态日期变量。这是相关的片段,文件名中没有

$qtr
时它可以正常工作,但是当我将其添加到文件名中时,生成的 .csv 不可读。

#!/bin/bash

qtr=$(date -d "-2 month" +%Y)Q$(( ($(date -d "-2 month" +%-m)-1)/3+1 ))

hiveconnector -e "set hive.cli.print.header=true;select * from hivetable;" | tr "\\t" "," >file_name_$qtr.csv

编辑:我已尝试对

file_name_$qtr.csv
进行以下更改:

file_name_${qtr}.csv, file_name_"${qtr}".csv, $"file_name_${qtr}.csv"

编辑2:看起来在 $qtr var 和纯文本之间添加了换行符,即使 file_name_"${qtr}".csv 的回显没有显示换行符 -

错误信息:

Can't create file 'C:\...\file_name_2024Q1

.csv'
    
The filename, directory name, or volume label syntax is incorrect.

编辑3 - 解决方案: 我能够通过 Unix EOL Conversion 并调用一个保存整个路径/文件名的新变量来解决。

bash shell hive
1个回答
0
投票

解决方案:我能够通过 Unix EOL Conversion 并调用一个保存整个路径/文件名的新变量来解决。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.