【发布时间】:2020-09-01 12:07:50
【问题描述】:
我正在使用 Mac 尝试解码类似的简单行
$var='doc_input'
$textToChange='<div> <doc_input/> </div>'
echo $textToChange | sed -e s=\<\;$var\/\>\;=\<$var\/\>=g
到
<div> <doc_input/> </div>
它会起作用的。结果必须与编码和解码的实体混合在一起。
但是,如果我尝试将其写入文件中,它将无法正常工作。文件 a.txt 包含文本。
sed -e s=\<\;$var\/\>\;=\<$var\/\>=g a.txt > c.txt
输出与输入相同。 请问我该怎么做?
【问题讨论】:
-
有人对我有意见吗?
-
你能用
sed -f mysedScript a.txt > c.txt这个表格吗?如果是,请尝试echo "s=\&lt\;$var\/\&gt\;=\<$var\/\>=g" > mysedScript。它对我有用。否则编辑您的 Q 以显示sed --version ; echo BASH_VERSION=$BASH_VERSION的输出。祝你好运。 -
但是,我同意使用
xmlstarlet或其他合适的编辑器的建议(现在不见了)。您可以使用sed解决您当前的问题,但现在您的老板会认为sed始终是正确的解决方案,“为什么这需要这么长时间,为什么它不能解决特殊情况 Y 或 Z!?” :-) 好的?祝你好运!