正则表达式 – Sed错误:替换命令中的错误标志:’U’
发布时间:2020-12-14 06:26:15 所属栏目:百科 来源:网络整理
导读:我是bash脚本的新手,并试图用sed替换我文件中的一些单词.以下是我在脚本中使用的bash: sed -i '' "s/pre.*/pre/pre($NEWNAME) $MD5/pre/"~/Desktop/replace.html 我收到错误消息说:替换命令中的坏标志:’U’.我使用双引号,因为我需要将变量放入. 我的环
我是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,例如?:
sed -i '' "s~<pre>.*</pre>~<pre>($NEWNAME) $MD5</pre>~" ~/Desktop/replace.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |