У меня есть скрипт, который принимает 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
Немного относится к следующему, например:
Сценарий оболочки для поиска, поиска и замены массива строк в файле