sed
HTML 문서에서 바꿔야 하는 변수를 사용합니다 .
내가 사용하는 것은 다음과 같습니다.
cat $email_temp\
| sed 's/\$message_entry/Flex File Export completed successfully for'"$run_date"'./g'\
| sed 's/\$run_date/'"$run_date"'/g'\
| sed 's/\$flex_file_new_count/\'"$flex_file_new_count"'/g'\
| sed 's/\$exported_file_count/'"$exported_file_count"'/g'\
| sed 's/\$date_data/\'"$date_data"'/g'\
| sed 's/\$flex_file_old_count_data/\'"$flex_file_old_count_data"'/g' > $email_body
답변1
댓글에서 지적했듯이@unxnut, 명령에 이스케이프된 작은따옴표 세 개가 있으며 \'
이스케이프해서는 안 됩니다. 따라서 sed
일치하는 닫는 작은따옴표를 찾을 수 없어 실패합니다.
다음을 시도해 보세요(인용된 변수 $email_temp
와 $email_body
한 번의 sed
호출 사용).
sed -e 's/\$message_entry/Flex File Export completed successfully for'"$run_date"'./g'\
-e 's/\$run_date/'"$run_date"'/g'\
-e 's/\$flex_file_new_count/'"$flex_file_new_count"'/g'\
-e 's/\$exported_file_count/'"$exported_file_count"'/g'\
-e 's/\$date_data/'"$date_data"'/g'\
-e 's/\$flex_file_old_count_data/'"$flex_file_old_count_data"'/g' "$email_temp" > "$email_body"