Sed错误:替换命令中的错误标志:'U'

Jas*_*eOT 11 regex bash sed

我是bash脚本的新手,并尝试使用sed替换我文件中的一些单词.以下是我在脚本中使用的bash:

sed -i '' "s/<pre>.*<\/pre>/<pre>($NEWNAME) $MD5<\/pre>/"~/Desktop/replace.html
Run Code Online (Sandbox Code Playgroud)

我收到错误消息说:bad flag in substitute command: 'U'.我使用双引号,因为我需要将变量放入.

我的环境是Mac.

======================================

1.转出我忘了在替换字符串和文件名之间留一个空格.这导致结果总是显示:bad flag in substitute command: '~'.它现在有效.

2.原因是我曾经MD5=$(md5 path)创建了MD5值,它获得了reault MD5 (path) *****,并且路径包含/打破了正则表达式.改变后MD5=$(md5 -q path),一切都会好的.

anu*_*ava 19

很可能你的$NEWNAME变量中有一个正斜杠,它被用作正则表达式分隔符sed.尝试sed使用备用分隔符,例如~:

sed -i '' "s~<pre>.*</pre>~<pre>($NEWNAME) $MD5</pre>~" ~/Desktop/replace.html
Run Code Online (Sandbox Code Playgroud)