sed: -e 표현식 #1, 문자 24: 끝나지 않은 "s" 명령

sed: -e 표현식 #1, 문자 24: 끝나지 않은 "s" 명령

sedHTML 문서에서 바꿔야 하는 변수를 사용합니다 .

내가 사용하는 것은 다음과 같습니다.

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"

관련 정보