我玩了很长时间…
首先,不要这样做:
new_description="$new_description<br/>$old_description"
追加或添加该行,我使用了
printf:
new_description="$(printf "$new_descriptionrn$old_description")"
通过使用
printf,我在广告内容描述分隔符中放置了a
<CR><LF>而不是一个
<LF>。这样,我就不会感到混乱,
<NL>并且
<CR><NL>不再依赖于 *** 作系统对换行符的定义。
该
sed命令花了我很长一段时间才能弄清楚。我尝试了各种事情:
old_description=$(sed 's/\r\n/rn/g' <<<$old_description)
但是,似乎没有任何工作…我尝试了
-E允许我使用 扩展的 正则表达式的标志,但该标志始终解释
rn为替换
\r\n为
literal'rn。
经过几个小时的处理,我终于尝试使用双引号而不是单引号:
old_description=$(sed "s/\r\n/rn/g" <<<$old_description)
可行!通常,您使用带sed的单引号来保护正则表达式免于插值。但是,单引号也杀死了
rnas 的插值
<CR><LF>。用双引号更改它们可以解决问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)