我正在尝试使用sed
搜索并替换字符串。搜索和替换字符串都包含反斜杠。例如
var="\text{kpll}"
var2="k_{\parallel}"
sed -i.bak "s|$var|$var2|g" MathematicaToLaTex.tex
这不能按预期工作。我本以期待
\text{kpll} ---> k_{\parallel}
相反,我正在
\text{kpll} ---> \k_{parallel}
似乎sed
正确地找到了字符串\text{kpll}
,但它并没有准确地替换它。浏览过论坛但找不到解决方案。尝试使用'
代替"
来更改分隔符,但无济于事。还尝试将文件类型从.tex
更改为.txt
,但没有任何区别。在MacOS的终端中运行。
-------编辑-------
我需要 将单个反斜杠更改为double,并将变量名称引号从"
更改为'
才能生效。
答案 0 :(得分:3)
转义反斜杠并将"
替换为'
:
var='\\text{kpll}'
var2='k_{\\parallel}'
sed -i.bak "s|$var|$var2|g" MathematicaToLaTex.tex