Я использую ksh.Чтение из файла с разделителями символов и назначение в переменные | ksh Unix shell
Мне нужно прочитать данные из файла, в переменные, а затем использовать их для отправки писем.
- Файл может быть разделен символами менее используемых символов (например, |^и т. Д.) Или группой символов.
- Необходимо получить почта из, почта в, куб. Куб. См, субъект, корпус из файла.
- Я наматываю файл в таблицу, поэтому разделитель может быть любым символом, но менее используемый в общем английском, потому что в теле есть такие символы, как & * и т. Д., И это может вернуть неправильное значение.
Файл: (куб.см и ОЦК не доступны в файле т.е. они являются пустыми)
[email protected]|[email protected]|||TEST EMAIL FOR LMS ERROR|Hi <<FIRST_NAME>>, <br><br>
Following errors are generated during migration of LMS data into FIMS application.<br><br><br>
The respective details of Error(s) occured is logged into the attached file.
Regards,<br>
FIMS Web Application<br><br><br>
This is an auto-generated e-mail, please don't reply to this e-mail
Reply to the following person for further details:
[email protected]
код с помощью:
while IFS='|' read -r a1 a2 a3 a4 a5 a6
do
flag1=`echo $a1`
flag2=`echo $a2`
flag3=`echo $a3`
flag4=`echo $a4`
flag5=`echo $a5`
flag6=`echo $a6`
done < $RUNTIME/EMAIL_$System`date +%y%m%d`.csv
Он не устанавливает переменные.
А при использовании кода ниже: Это показывает нежелательную выход:
while IFS='|' read -r a1 a2 a3 a4 a5 a6
do
echo $a1
echo $a2
echo $a3
echo $a4
echo $a5
echo $a6
done < $RUNTIME/EMAIL_$System`date +%y%m%d`.csv
Выход: (ад много пустых строк)
[email protected]
[email protected]
TEST EMAIL FOR LMS ERROR
Hi <<FIRST_NAME>>, <br><br>
Following errors are generated during migration of LMS data into FIMS application.<br><br><br>
The respective details of Error(s) occured is logged into the attached file.
Regards,<br>
FIMS Web Application<br><br><br>
This is an auto-generated e-mail, please don't reply to this e-mail
Reply to the following person for further details:
[email protected]
Не нужно просто разобрать первую строку? – SMA
Это не только одна строка. Вместо этого это только одна единственная запись. И проблема в том, что последняя запись - BODY электронной почты, которая действительно имеет много строк сама по себе. – Sachin
Может ли использовать 'cut' для назначения каждой переменной? 'cut -f1 -d '|'' используя f1-f6? – Jmoreland91