替换字符串数组(作为参数传递给脚本)是否使用bashshell脚本替换hql文件中的那些值?

rn0zuynd  于 2021-06-25  发布在  Hive
关注(0)|答案(0)|浏览(517)

我有一个脚本,它接受3个参数$1$2$3
但是$3是一个类似于(“2018”“01”)的数组
所以我执行我的脚本:

sh script.sh Employee IT "2018 01"

还有一个hql文件(emp.hql),我想用下面传递的数组替换分区列:


***"select deptid , employee_name from {TBL_NM} where year={par_col[i]} and month={par_col[i]}"***

下面是我尝试过的代码:


**Table=$1

dept=$2
Par_cols=($3)
 for i in "${par_cols[@]}" ;do
sed -i "/${par_col[i]}/${par_col[i]}/g" /home/hk/emp.hql**
done

错误:


* sed: -e experssion #1 , char 0: no previous regular expression*

* sed: -e experssion #2 , char 0: no previous regular expression*

但是我认为替换分区列的逻辑是错误的,你能帮我一下吗?
hql文件中所需的输出:

select deptid ,employee_name from employee where year=2018 and month=01

与以下内容相关的一点,如:
shell脚本,用于查找、搜索和替换文件中的字符串数组

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题