Заменить массив строк (переданный в качестве аргумента скрипту) заменить эти значения в файле HQL с помощью скрипта оболочки Bash? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть скрипт, который принимает 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*

Но я думаю, что logi c для замены столбцов разделов неправильный, не могли бы вы помочь мне в этом?

Требуемый вывод в HQL-файле:

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

Немного относится к следующему, например:

Сценарий оболочки для поиска, поиска и замены массива строк в файле

...