简单的问题。
当我使用sed将\r\n
添加到变量中时
它失败。
如何添加\r\n
?
dateRecent=$(sed 's| 年| 年'"\r\n"'|g' <<< $newsDate)
dateRecent=$(sed 's| 年| 年\r\n|g' <<< $newsDate)
sed:-e表达式#1,字符146:未终止的's'命令
整个代码在这里:
cp /var/www/html/INFOSEC/textonly/sc_chi/anti/recent.html /var/www/html/INFOSEC/textonly/sc_chi/anti/recent.test.html
echo "Please input Date in this format(eg.2011 年 7 月 8 日):"
read -e newsDate
echo "Please input Title:"
read -e title
echo "Please input Description:"
read -e desc
echo "Please input ID(eg.d071101):"
read -e id
echo "Please input reference website:"
read -e web
echo "Confirm? Have to do it all over again if wrong (Yes:y, No:n)"
read -e confirm
dateRecent=$newsDate
if [[ "$mail" == "y" ]]; then
dateRecent=$(sed -e 's/ 年/ 年\r\n/g' <<< $newsDate)
fi
#Add Phishing attack in recent.html
sed -i '0,/<li>/ { s/<li>/<li><a href="'"$web"'" target="_blank">'"$dateRecent"' - '"$title"'<\/a><\/li>\r\n <li>/ }' /var/www/html/INFOSEC/textonly/sc_chi/anti/recent.test.html
答案 0 :(得分:1)
Ppl无法重新创建。所以它可能取决于sed版本。 新的gnused应该像评论报告中的一些一样处理\ r \ n。
较旧的gnused和其他sed可能需要原始换行符并返回重新生成。因此,您可以使用echo来获取它并忽略sed impplementions,但这会给你的shell带来另一种依赖。
# ksh is my suggested standard style:
sed "s/ 年/ 年`echo -e \\\r\\\n`/g"
# zsh is like ksh and you can omit the -e for echo
# Old bash?:
sed 's/ 年'"/ 年`echo \\\r\\\n`/g"
Windows很简单,只假设双引号GNUSed。
sed "s/ 年/ 年\r\n/g"
了解AIX下的生活是多么痛苦......