Мой сценарий оболочки выполняет SQL для извлечения данных в следующем формате:
JOB_ID_001|[PROD] This is a mail subject one ${application_date}|a@example.com,b@example.com
JOB_ID_002|[PROD] This is a mail subject two ${application_date}|c@example.com,b@example.com
Я хочу разбить эту строку, разделенную на трубы, но вывод выглядит очень странно, как показано ниже:
JOB_ID_001[0]
JOB_ID_001[1]
JOB_ID_001[2]
This[0]
This[1]
This[2]
is[0]
is[1]
is[2]
a[0]
a[1]
a[2]
mail[0]
mail[1]
mail[2]
subject[0]
subject[1]
subject[2]
one[0]
one[1]
one[2]
${application_date}[0]
${application_date}[1]
${application_date}[2]
example.com,b@example.com[0]
example.com,b@example.com[1]
example.com,b@example.com[2]
JOB_ID_002[0]
JOB_ID_002[1]
JOB_ID_002[2]
This[0]
This[1]
This[2]
is[0]
is[1]
is[2]
a[0]
a[1]
a[2]
mail[0]
mail[1]
mail[2]
subject[0]
subject[1]
subject[2]
two[0]
two[1]
two[2]
${application_date}[0]
${application_date}[1]
${application_date}[2]
ple.com,b@example.com[0]
ple.com,b@example.com[1]
ple.com,b@example.com[2]
Мой желаемый вывод:
JOB_ID_001
[PROD] This is a mail subject one ${application_date}
a@example.com,b@example.com
JOB_ID_002
[PROD] This is a mail subject two ${application_date}
c@example.com,b@example.com
Чтобы я мог продолжить работу с этими строками.
Мой сценарий оболочки выглядит следующим образом:
email_configs=(`sqlplus -silent $DB_CONN <<-EOF
whenever sqlerror exit 1 oserror exit oscode
set heading off feedback off echo off verify off pagesize 0
$sql_subject_of_mail;
exit;
EOF`)
for i in "${!email_configs[@]}"
do
email_config=${email_configs[i]}
IFS='|' read -r -a email_config_array <<< "$email_config"
job_id=$email_config_array[0]
subject_of_mail=$email_config_array[1]
to_mail_id=$email_config_array[2]
echo $job_id
echo $subject_of_mail
echo $to_mail_id
done
Я проверил некоторые альтернативные решения со этой страницы, но в выходной части $ {application_date} отсутствует или есть какая-то другая проблема.
Может кто-нибудь иметь представление о моей ошибке?