使用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"