我是bash脚本的新手,并试图用sed替换我文件中的一些单词.以下是我在脚本中使用的bash:
sed -i '' "s/<pre>.*<\/pre>/<pre>($NEWNAME) $MD5<\/pre>/"~/Desktop/replace.html
我收到错误消息说:替换命令中的坏标志:’U’.我使用双引号,因为我需要将变量放入.
我的环境是Mac.
======================================
1.Turns out我忘了在替换字符串和文件名之间留一个空格.这导致结果始终显示:替换命令中的错误标志:’〜’.它现在有效.
2.原因是我使用MD5 = $(md5路径)来创建MD5值,它获得MD5(路径)*****的reault,并且路径包含/打破正则表达式.更改MD5 = $(md5 -q路径)后,就可以了.
很可能你的$NEWNAME变量中有一个正斜杠,它在sed中用作正则表达式分隔符.尝试使用备用分隔符的此sed,例如〜:
原文链接:https://www.f2er.com/regex/356974.htmlsed -i '' "s~<pre>.*</pre>~<pre>($NEWNAME) $MD5</pre>~" ~/Desktop/replace.html