Sed替换字符串中的特殊字符
使用sed替换包含特殊字符的字符串时遇到困难。我的旧字符串和新字符串如下所示Sed替换字符串中的特殊字符,sed,special-characters,Sed,Special Characters,使用sed替换包含特殊字符的字符串时遇到困难。我的旧字符串和新字符串如下所示 oldStr = "# td=(nstates=20) cam-b3lyp/6-31g geom=connectivity" newStr = "# opt b3lyp/6-31g geom=connectivity" 我的sed命令如下 sed -i 's/\# td\=\(nstates\=20\) cam\-b3lyp\/6\-31g geom\=connectivity/\# opt b3lyp\/6\-31
oldStr = "# td=(nstates=20) cam-b3lyp/6-31g geom=connectivity"
newStr = "# opt b3lyp/6-31g geom=connectivity"
我的sed命令如下
sed -i 's/\# td\=\(nstates\=20\) cam\-b3lyp\/6\-31g geom\=connectivity/\# opt b3lyp\/6\-31g geom\=connectivity/g' myfile.txt
我没有任何错误,但是没有对手。关于如何修复我的模式的任何想法
谢谢试试s|#td=(nstates=20)cam-b3lyp/6-31g geom=connectivity |#opt b3lyp/6-31g geom=connectivity | g'
您可以在
s
之后的任何内容旁边使用,而不是/
,因为您的表达式包含我使用的斜杠-
,=
和#
不必转义(仅在字符集[
..]
),转义参数表示组,非转义参数是文本。非常感谢您的回复。显然,我还在学习sed:grin: